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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
=== tests/cases/compiler/superAccess2.ts ===
class P {
>P : P
x() { }
>x : () => void
static y() { }
>y : () => void
}
class Q extends P {
>Q : Q
>P : P
xx = super;
>xx : any
>super : any
>super : P
> : any
static yy = super; // error for static initializer accessing super
>yy : any
>super : any
>super : typeof P
> : any
// Super is not allowed in constructor args
constructor(public z = super, zz = super, zzz = () => super) {
>z : any
>super : any
>super : any
> : any
>zz : any
>super : any
>super : any
> : any
>zzz : () => any
>() => super : () => any
>super : any
>super : P
> : any
super();
>super() : void
>super : typeof P
}
foo(zz = super) {
>foo : (zz?: any) => void
>zz : any
>super : any
>super : P
> : any
super.x();
>super.x() : void
>super.x : () => void
>super : P
>x : () => void
super.y(); // error
>super.y() : any
>super.y : any
>super : P
>y : any
}
static bar(zz = super) {
>bar : (zz?: any) => void
>zz : any
>super : any
>super : typeof P
> : any
super.x(); // error
>super.x() : any
>super.x : any
>super : typeof P
>x : any
super.y();
>super.y() : void
>super.y : () => void
>super : typeof P
>y : () => void
}
}
|