53 lines
1.3 KiB
Text
53 lines
1.3 KiB
Text
|
==== tests/cases/compiler/multipleInheritance.ts (6 errors) ====
|
||
|
class B1 {
|
||
|
public x;
|
||
|
}
|
||
|
|
||
|
class B2 {
|
||
|
public x;
|
||
|
}
|
||
|
|
||
|
class C extends B1, B2 { // duplicate member
|
||
|
~
|
||
|
!!! '{' expected.
|
||
|
~
|
||
|
!!! ';' expected.
|
||
|
}
|
||
|
|
||
|
class D1 extends B1 {
|
||
|
}
|
||
|
|
||
|
class D2 extends B2 {
|
||
|
}
|
||
|
|
||
|
class E extends D1, D2 { // nope, duplicate member
|
||
|
~
|
||
|
!!! '{' expected.
|
||
|
~
|
||
|
!!! ';' expected.
|
||
|
}
|
||
|
|
||
|
class N {
|
||
|
public y:number;
|
||
|
}
|
||
|
|
||
|
class ND extends N { // any is assignable to number
|
||
|
public y;
|
||
|
}
|
||
|
|
||
|
class Good {
|
||
|
public f:() => number = function() { return 0; }
|
||
|
public g() { return 0; }
|
||
|
}
|
||
|
|
||
|
class Baad extends Good {
|
||
|
~~~~
|
||
|
!!! Class 'Baad' incorrectly extends base class 'Good':
|
||
|
!!! Types of property 'g' are incompatible:
|
||
|
!!! Type '(n: number) => number' is not assignable to type '() => number'.
|
||
|
public f(): number { return 0; }
|
||
|
~
|
||
|
!!! Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function.
|
||
|
public g(n:number) { return 0; }
|
||
|
}
|
||
|
|