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
|
=== tests/cases/conformance/types/import/externs.d.ts ===
declare namespace MyClass {
>MyClass : Symbol(MyClass, Decl(externs.d.ts, 0, 0), Decl(externs.d.ts, 4, 1))
export interface Bar {
>Bar : Symbol(Bar, Decl(externs.d.ts, 0, 27), Decl(externs.d.ts, 6, 18))
doer: (x: string) => void;
>doer : Symbol(Bar.doer, Decl(externs.d.ts, 1, 26))
>x : Symbol(x, Decl(externs.d.ts, 2, 15))
}
}
declare class MyClass {
>MyClass : Symbol(MyClass, Decl(externs.d.ts, 0, 0), Decl(externs.d.ts, 4, 1))
field: string;
>field : Symbol(MyClass.field, Decl(externs.d.ts, 5, 23))
static Bar: (x: string, y?: number) => void;
>Bar : Symbol(MyClass.Bar, Decl(externs.d.ts, 0, 27), Decl(externs.d.ts, 6, 18))
>x : Symbol(x, Decl(externs.d.ts, 7, 17))
>y : Symbol(y, Decl(externs.d.ts, 7, 27))
constructor(x: MyClass.Bar);
>x : Symbol(x, Decl(externs.d.ts, 8, 16))
>MyClass : Symbol(MyClass, Decl(externs.d.ts, 0, 0), Decl(externs.d.ts, 4, 1))
>Bar : Symbol(MyClass.Bar, Decl(externs.d.ts, 0, 27), Decl(externs.d.ts, 6, 18))
}
declare global {
>global : Symbol(global, Decl(externs.d.ts, 9, 1))
const Foo: typeof MyClass;
>Foo : Symbol(Foo, Decl(index.js, 1, 3), Decl(externs.d.ts, 11, 9))
>MyClass : Symbol(MyClass, Decl(externs.d.ts, 0, 0), Decl(externs.d.ts, 4, 1))
}
export = MyClass;
>MyClass : Symbol(MyClass, Decl(externs.d.ts, 0, 0), Decl(externs.d.ts, 4, 1))
=== tests/cases/conformance/types/import/index.js ===
/**
* @typedef {import("./externs")} Foo
*/
let a = /** @type {Foo} */(/** @type {*} */(undefined));
>a : Symbol(a, Decl(index.js, 4, 3))
>undefined : Symbol(undefined)
a = new Foo({doer: Foo.Bar});
>a : Symbol(a, Decl(index.js, 4, 3))
>Foo : Symbol(Foo, Decl(index.js, 1, 3), Decl(externs.d.ts, 11, 9))
>doer : Symbol(doer, Decl(index.js, 5, 13))
>Foo.Bar : Symbol(MyClass.Bar, Decl(externs.d.ts, 0, 27), Decl(externs.d.ts, 6, 18))
>Foo : Symbol(Foo, Decl(index.js, 1, 3), Decl(externs.d.ts, 11, 9))
>Bar : Symbol(MyClass.Bar, Decl(externs.d.ts, 0, 27), Decl(externs.d.ts, 6, 18))
const q = /** @type {import("./externs").Bar} */({ doer: q => q });
>q : Symbol(q, Decl(index.js, 6, 5))
>doer : Symbol(doer, Decl(index.js, 6, 50))
>q : Symbol(q, Decl(index.js, 6, 56))
>q : Symbol(q, Decl(index.js, 6, 56))
const r = /** @type {typeof import("./externs").Bar} */(r => r);
>r : Symbol(r, Decl(index.js, 7, 5))
>r : Symbol(r, Decl(index.js, 7, 56))
>r : Symbol(r, Decl(index.js, 7, 56))
|