Skip to content

Commit ffcfd9a

Browse files
Add test for typeof import.defer (unsupported)
1 parent 1886e24 commit ffcfd9a

5 files changed

Lines changed: 87 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
b.ts(1,30): error TS1005: '(' expected.
2+
b.ts(1,30): error TS1141: String literal expected.
3+
b.ts(1,36): error TS1005: ')' expected.
4+
b.ts(1,44): error TS2339: Property 'Foo' does not exist on type '"./a"'.
5+
6+
7+
==== a.ts (0 errors) ====
8+
export interface Foo {
9+
x: number;
10+
}
11+
12+
==== b.ts (4 errors) ====
13+
export type X = typeof import.defer("./a").Foo;
14+
~
15+
!!! error TS1005: '(' expected.
16+
~~~~~~
17+
!!! error TS1141: String literal expected.
18+
~
19+
!!! error TS1005: ')' expected.
20+
~~~
21+
!!! error TS2339: Property 'Foo' does not exist on type '"./a"'.
22+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//// [tests/cases/conformance/importDefer/typeofImportDefer.ts] ////
2+
3+
//// [a.ts]
4+
export interface Foo {
5+
x: number;
6+
}
7+
8+
//// [b.ts]
9+
export type X = typeof import.defer("./a").Foo;
10+
11+
12+
//// [a.js]
13+
export {};
14+
//// [b.js]
15+
("./a").Foo;
16+
export {};
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//// [tests/cases/conformance/importDefer/typeofImportDefer.ts] ////
2+
3+
=== a.ts ===
4+
export interface Foo {
5+
>Foo : Symbol(Foo, Decl(a.ts, 0, 0))
6+
7+
x: number;
8+
>x : Symbol(Foo.x, Decl(a.ts, 0, 22))
9+
}
10+
11+
=== b.ts ===
12+
export type X = typeof import.defer("./a").Foo;
13+
>X : Symbol(X, Decl(b.ts, 0, 0))
14+
> : Symbol(unknown)
15+
>defer : Symbol(unknown.defer)
16+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//// [tests/cases/conformance/importDefer/typeofImportDefer.ts] ////
2+
3+
=== a.ts ===
4+
export interface Foo {
5+
x: number;
6+
>x : number
7+
> : ^^^^^^
8+
}
9+
10+
=== b.ts ===
11+
export type X = typeof import.defer("./a").Foo;
12+
>X : any
13+
> : ^^^
14+
> : any
15+
> : ^^^
16+
>("./a").Foo : any
17+
> : ^^^
18+
>("./a") : "./a"
19+
> : ^^^^^
20+
>"./a" : "./a"
21+
> : ^^^^^
22+
>Foo : any
23+
> : ^^^
24+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// @module: esnext
2+
3+
// @filename: a.ts
4+
export interface Foo {
5+
x: number;
6+
}
7+
8+
// @filename: b.ts
9+
export type X = typeof import.defer("./a").Foo;

0 commit comments

Comments
 (0)