==== tests/cases/compiler/interfaceImplementation1.ts (3 errors) ==== interface I1 { iObj:{ }; iNum:number; iAny:any; iFn():void; } interface I2 { iFn(n:number, s:string):void; } class C1 implements I1,I2 { ~~ !!! Class 'C1' incorrectly implements interface 'I1': !!! Private property 'iObj' cannot be reimplemented. ~~ !!! Class 'C1' incorrectly implements interface 'I2': !!! Private property 'iFn' cannot be reimplemented. private iFn(); private iFn(n?:number, s?:string) { } private iAny:any; private iNum:number; private iObj:{ }; } interface I3 { x: number; } interface I4 { ():I3; new ():I3; [call:number]:string; } class C2 implements I3 { public x = 1; } var a:I4 = function(){ ~ !!! Type '() => C2' is not assignable to type 'I4'. return new C2(); } new a(); /*var b:I4 = C2; new b(); */ var c:I4; c[5]; c["foo"];