45 lines
1.1 KiB
Text
45 lines
1.1 KiB
Text
|
==== tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithInheritedPrivates2.ts (5 errors) ====
|
||
|
class C {
|
||
|
private x: number;
|
||
|
}
|
||
|
|
||
|
class C2 {
|
||
|
private w: number;
|
||
|
}
|
||
|
|
||
|
interface A extends C {
|
||
|
y: string;
|
||
|
}
|
||
|
|
||
|
interface A extends C2 {
|
||
|
z: string;
|
||
|
}
|
||
|
|
||
|
class D extends C implements A { // error
|
||
|
~
|
||
|
!!! Class 'D' incorrectly implements interface 'A':
|
||
|
!!! Private property 'w' cannot be reimplemented.
|
||
|
private w: number;
|
||
|
y: string;
|
||
|
z: string;
|
||
|
}
|
||
|
|
||
|
class E extends C2 implements A { // error
|
||
|
~
|
||
|
!!! Class 'E' incorrectly extends base class 'C2':
|
||
|
!!! Private property 'w' cannot be reimplemented.
|
||
|
~
|
||
|
!!! Class 'E' incorrectly implements interface 'A':
|
||
|
!!! Property 'x' is missing in type 'E'.
|
||
|
w: number;
|
||
|
y: string;
|
||
|
z: string;
|
||
|
}
|
||
|
|
||
|
var a: A;
|
||
|
var r = a.x; // error
|
||
|
~~~
|
||
|
!!! Property 'C.x' is inaccessible.
|
||
|
var r2 = a.w; // error
|
||
|
~~~
|
||
|
!!! Property 'C2.w' is inaccessible.
|