* Fix #10083 - allowSyntheticDefaultImports alters getExternalModuleMember (#10096) * Add a helper function `getOrUpdateProperty` to prevent unprotected access to Maps. * Limit type guards as assertions to incomplete types in loops * Accept new baselines * Fix linting error * [Release-2.0] Fix 9662: Visual Studio 2015 with TS2.0 gives incorrect @types path resolution errors (#9867) * Change the shape of the shim layer to support getAutomaticTypeDirectives * Change the key for looking up automatic type-directives * Update baselines from change look-up name of type-directives * Add @currentDirectory into the test * Update baselines * Fix linting error * Address PR: fix spelling mistake * Instead of return path of the type directive names just return type directive names * Remove unused reference files: these tests produce erros so they will not produce these files (#9233) * Don't allow properties inherited from Object to be automatically included in TSX attributes * Port PR #10016 to Master (#10100) * Treat namespaceExportDeclaration as declaration * Update baselines * wip - add tests * Add tests * Show "export namespace" for quick-info * Update baselines from merging
32 lines
657 B
TypeScript
32 lines
657 B
TypeScript
//@filename: file.tsx
|
|
//@jsx: preserve
|
|
declare module JSX {
|
|
interface Element { }
|
|
interface IntrinsicElements {
|
|
test1: Attribs1;
|
|
test2: Attribs2;
|
|
}
|
|
}
|
|
interface Attribs1 {
|
|
x: string;
|
|
}
|
|
|
|
interface Attribs2 {
|
|
toString(): string;
|
|
}
|
|
|
|
function make1<T extends {x: string}> (obj: T) {
|
|
return <test1 {...obj} />; // OK
|
|
}
|
|
|
|
function make2<T extends {x: number}> (obj: T) {
|
|
return <test1 {...obj} />; // Error (x is number, not string)
|
|
}
|
|
|
|
function make3<T extends {y: string}> (obj: T) {
|
|
return <test1 {...obj} />; // Error, missing x
|
|
}
|
|
|
|
|
|
<test1 {...{}} />; // Error, missing x
|
|
<test2 {...{}} />; // Error, missing toString
|