2014-07-13 01:04:16 +02:00
|
|
|
==== tests/cases/compiler/interfaceImplementation8.ts (3 errors) ====
|
|
|
|
/*
|
|
|
|
1
|
|
|
|
*/
|
|
|
|
interface i1 {
|
|
|
|
name: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
class C1 implements i1 {
|
|
|
|
public name:string;
|
|
|
|
}
|
|
|
|
|
|
|
|
class C2 implements i1 {
|
|
|
|
~~
|
|
|
|
!!! Class 'C2' incorrectly implements interface 'i1':
|
2014-09-17 19:36:32 +02:00
|
|
|
!!! Property 'name' is private in type 'C2' but not in type 'i1'.
|
2014-07-13 01:04:16 +02:00
|
|
|
private name:string;
|
|
|
|
}
|
|
|
|
|
|
|
|
class C3 {
|
|
|
|
private name:any;
|
|
|
|
}
|
|
|
|
|
|
|
|
class C4 extends C1 implements i1{ }
|
|
|
|
class C5 extends C2 implements i1{ }
|
|
|
|
~~
|
|
|
|
!!! Class 'C5' incorrectly implements interface 'i1':
|
2014-09-17 19:36:32 +02:00
|
|
|
!!! Property 'name' is private in type 'C5' but not in type 'i1'.
|
2014-07-13 01:04:16 +02:00
|
|
|
class C6 extends C3 implements i1{ }
|
|
|
|
~~
|
|
|
|
!!! Class 'C6' incorrectly implements interface 'i1':
|
2014-09-17 19:36:32 +02:00
|
|
|
!!! Property 'name' is private in type 'C6' but not in type 'i1'.
|
2014-07-13 01:04:16 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
2
|
|
|
|
*/
|
|
|
|
|
|
|
|
interface i2 {
|
|
|
|
name: string;
|
|
|
|
age: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
class C7 {
|
|
|
|
public name:string;
|
|
|
|
}
|
|
|
|
|
|
|
|
class C8 extends C7 implements i2{
|
|
|
|
public age:number;
|
|
|
|
}
|
|
|
|
|