//@filename: file.tsx //@jsx: preserve declare module JSX { interface Element { } interface IntrinsicElements { test1: Attribs1; test2: { reqd: string }; var: { var: string }; } } interface Attribs1 { x?: number; s?: string; } // OK ; // OK ; // OK ; // OK ; // OK ; // OK // Errors ; // Error, '0' is not number ; // Error, no property "y" ; // Error, no property "y" ; // Error, "32" is not number ; // Error, no 'var' property ; // Error, missing reqd ; // Error, reqd is not string // Should be OK ;