//@filename: file.tsx //@jsx: preserve declare module JSX { interface Element { } interface ElementAttributesProperty { pr: any; } interface IntrinsicElements { } } interface Obj1type { new(n: string): any; } var Obj1: Obj1type; ; // OK interface Obj2type { new(n: string): { q?: number; pr: any }; } var Obj2: Obj2type; ; // OK interface Obj3type { new(n: string): { x: number; }; } var Obj3: Obj3type; ; // Error var attributes: any; ; // Error ; // OK interface Obj4type { new(n: string): { x: number; pr: { x: number; } }; } var Obj4: Obj4type; ; // OK ; // Error