mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-10 18:04:18 -05:00
Test: typeof can refer to block-scoped var before declaration
This commit is contained in:
20
tests/baselines/reference/typeofUsedBeforeBlockScoped.js
Normal file
20
tests/baselines/reference/typeofUsedBeforeBlockScoped.js
Normal file
@@ -0,0 +1,20 @@
|
||||
//// [typeofUsedBeforeBlockScoped.ts]
|
||||
// TODO: Change name of file to typeofUsedBeforeBlockScoped.ts
|
||||
type T = typeof C & typeof C.s & typeof o & typeof o.n;
|
||||
class C {
|
||||
static s = 2;
|
||||
}
|
||||
type W = typeof o.n;
|
||||
let o2: typeof o;
|
||||
let o = { n: 12 };
|
||||
|
||||
|
||||
//// [typeofUsedBeforeBlockScoped.js]
|
||||
var C = (function () {
|
||||
function C() {
|
||||
}
|
||||
return C;
|
||||
}());
|
||||
C.s = 2;
|
||||
var o2;
|
||||
var o = { n: 12 };
|
||||
@@ -0,0 +1,33 @@
|
||||
=== tests/cases/compiler/typeofUsedBeforeBlockScoped.ts ===
|
||||
// TODO: Change name of file to typeofUsedBeforeBlockScoped.ts
|
||||
type T = typeof C & typeof C.s & typeof o & typeof o.n;
|
||||
>T : Symbol(T, Decl(typeofUsedBeforeBlockScoped.ts, 0, 0))
|
||||
>C : Symbol(C, Decl(typeofUsedBeforeBlockScoped.ts, 1, 55))
|
||||
>C.s : Symbol(C.s, Decl(typeofUsedBeforeBlockScoped.ts, 2, 9))
|
||||
>C : Symbol(C, Decl(typeofUsedBeforeBlockScoped.ts, 1, 55))
|
||||
>s : Symbol(C.s, Decl(typeofUsedBeforeBlockScoped.ts, 2, 9))
|
||||
>o : Symbol(o, Decl(typeofUsedBeforeBlockScoped.ts, 7, 3))
|
||||
>o.n : Symbol(n, Decl(typeofUsedBeforeBlockScoped.ts, 7, 9))
|
||||
>o : Symbol(o, Decl(typeofUsedBeforeBlockScoped.ts, 7, 3))
|
||||
>n : Symbol(n, Decl(typeofUsedBeforeBlockScoped.ts, 7, 9))
|
||||
|
||||
class C {
|
||||
>C : Symbol(C, Decl(typeofUsedBeforeBlockScoped.ts, 1, 55))
|
||||
|
||||
static s = 2;
|
||||
>s : Symbol(C.s, Decl(typeofUsedBeforeBlockScoped.ts, 2, 9))
|
||||
}
|
||||
type W = typeof o.n;
|
||||
>W : Symbol(W, Decl(typeofUsedBeforeBlockScoped.ts, 4, 1))
|
||||
>o.n : Symbol(n, Decl(typeofUsedBeforeBlockScoped.ts, 7, 9))
|
||||
>o : Symbol(o, Decl(typeofUsedBeforeBlockScoped.ts, 7, 3))
|
||||
>n : Symbol(n, Decl(typeofUsedBeforeBlockScoped.ts, 7, 9))
|
||||
|
||||
let o2: typeof o;
|
||||
>o2 : Symbol(o2, Decl(typeofUsedBeforeBlockScoped.ts, 6, 3))
|
||||
>o : Symbol(o, Decl(typeofUsedBeforeBlockScoped.ts, 7, 3))
|
||||
|
||||
let o = { n: 12 };
|
||||
>o : Symbol(o, Decl(typeofUsedBeforeBlockScoped.ts, 7, 3))
|
||||
>n : Symbol(n, Decl(typeofUsedBeforeBlockScoped.ts, 7, 9))
|
||||
|
||||
36
tests/baselines/reference/typeofUsedBeforeBlockScoped.types
Normal file
36
tests/baselines/reference/typeofUsedBeforeBlockScoped.types
Normal file
@@ -0,0 +1,36 @@
|
||||
=== tests/cases/compiler/typeofUsedBeforeBlockScoped.ts ===
|
||||
// TODO: Change name of file to typeofUsedBeforeBlockScoped.ts
|
||||
type T = typeof C & typeof C.s & typeof o & typeof o.n;
|
||||
>T : T
|
||||
>C : typeof C
|
||||
>C.s : number
|
||||
>C : typeof C
|
||||
>s : number
|
||||
>o : { n: number; }
|
||||
>o.n : number
|
||||
>o : { n: number; }
|
||||
>n : number
|
||||
|
||||
class C {
|
||||
>C : C
|
||||
|
||||
static s = 2;
|
||||
>s : number
|
||||
>2 : 2
|
||||
}
|
||||
type W = typeof o.n;
|
||||
>W : number
|
||||
>o.n : number
|
||||
>o : { n: number; }
|
||||
>n : number
|
||||
|
||||
let o2: typeof o;
|
||||
>o2 : { n: number; }
|
||||
>o : { n: number; }
|
||||
|
||||
let o = { n: 12 };
|
||||
>o : { n: number; }
|
||||
>{ n: 12 } : { n: number; }
|
||||
>n : number
|
||||
>12 : 12
|
||||
|
||||
8
tests/cases/compiler/typeofUsedBeforeBlockScoped.ts
Normal file
8
tests/cases/compiler/typeofUsedBeforeBlockScoped.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
// TODO: Change name of file to typeofUsedBeforeBlockScoped.ts
|
||||
type T = typeof C & typeof C.s & typeof o & typeof o.n;
|
||||
class C {
|
||||
static s = 2;
|
||||
}
|
||||
type W = typeof o.n;
|
||||
let o2: typeof o;
|
||||
let o = { n: 12 };
|
||||
Reference in New Issue
Block a user