55 lines
No EOL
1.2 KiB
Text
55 lines
No EOL
1.2 KiB
Text
==== 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':
|
|
!!! Property 'iObj' is private in type 'C1' but not in type 'I1'.
|
|
~~
|
|
!!! Class 'C1' incorrectly implements interface 'I2':
|
|
!!! Property 'iFn' is private in type 'C1' but not in type 'I2'.
|
|
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"];
|
|
|