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 89
|
=== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts ===
class A {
>A : A
static {
A.doSomething(); // should not error
>A.doSomething() : void
>A.doSomething : () => void
>A : typeof A
>doSomething : () => void
}
static doSomething() {
>doSomething : () => void
console.log("gotcha!");
>console.log("gotcha!") : void
>console.log : (...data: any[]) => void
>console : Console
>log : (...data: any[]) => void
>"gotcha!" : "gotcha!"
}
}
class Baz {
>Baz : Baz
static {
console.log(FOO); // should error
>console.log(FOO) : void
>console.log : (...data: any[]) => void
>console : Console
>log : (...data: any[]) => void
>FOO : "FOO"
}
}
const FOO = "FOO";
>FOO : "FOO"
>"FOO" : "FOO"
class Bar {
>Bar : Bar
static {
console.log(FOO); // should not error
>console.log(FOO) : void
>console.log : (...data: any[]) => void
>console : Console
>log : (...data: any[]) => void
>FOO : "FOO"
}
}
let u = "FOO" as "FOO" | "BAR";
>u : "FOO" | "BAR"
>"FOO" as "FOO" | "BAR" : "FOO" | "BAR"
>"FOO" : "FOO"
class CFA {
>CFA : CFA
static {
u = "BAR";
>u = "BAR" : "BAR"
>u : "FOO" | "BAR"
>"BAR" : "BAR"
u; // should be "BAR"
>u : "BAR"
}
static t = 1;
>t : number
>1 : 1
static doSomething() {}
>doSomething : () => void
static {
u; // should be "BAR"
>u : "BAR"
}
}
u; // should be "BAR"
>u : "BAR"
|