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
|
tests/cases/compiler/inheritance.ts(31,12): error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function.
tests/cases/compiler/inheritance.ts(32,12): error TS2416: Property 'g' in type 'Baad' is not assignable to the same property in base type 'Good'.
Type '(n: number) => number' is not assignable to type '() => number'.
==== tests/cases/compiler/inheritance.ts (2 errors) ====
class B1 {
public x;
}
class B2 {
public x;
}
class D1 extends B1 {
}
class D2 extends B2 {
}
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 {
public f(): number { return 0; }
~
!!! error TS2425: Class 'Good' defines instance member property 'f', but extended class 'Baad' defines it as instance member function.
public g(n: number) { return 0; }
~
!!! error TS2416: Property 'g' in type 'Baad' is not assignable to the same property in base type 'Good'.
!!! error TS2416: Type '(n: number) => number' is not assignable to type '() => number'.
}
|