1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
tests/cases/compiler/interfaceImplementation8.ts(12,7): error TS2420: Class 'C2' incorrectly implements interface 'i1'.
Property 'name' is private in type 'C2' but not in type 'i1'.
tests/cases/compiler/interfaceImplementation8.ts(21,7): error TS2420: Class 'C5' incorrectly implements interface 'i1'.
Property 'name' is private in type 'C5' but not in type 'i1'.
tests/cases/compiler/interfaceImplementation8.ts(22,7): error TS2420: Class 'C6' incorrectly implements interface 'i1'.
Property 'name' is private in type 'C6' but not in type 'i1'.
==== tests/cases/compiler/interfaceImplementation8.ts (3 errors) ====
/*
1
*/
interface i1 {
name: string;
}
class C1 implements i1 {
public name:string;
}
class C2 implements i1 {
~~
!!! error TS2420: Class 'C2' incorrectly implements interface 'i1'.
!!! error TS2420: Property 'name' is private in type 'C2' but not in type 'i1'.
private name:string;
}
class C3 {
private name:any;
}
class C4 extends C1 implements i1{ }
class C5 extends C2 implements i1{ }
~~
!!! error TS2420: Class 'C5' incorrectly implements interface 'i1'.
!!! error TS2420: Property 'name' is private in type 'C5' but not in type 'i1'.
class C6 extends C3 implements i1{ }
~~
!!! error TS2420: Class 'C6' incorrectly implements interface 'i1'.
!!! error TS2420: Property 'name' is private in type 'C6' but not in type 'i1'.
/*
2
*/
interface i2 {
name: string;
age: number;
}
class C7 {
public name:string;
}
class C8 extends C7 implements i2{
public age:number;
}
|