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
|
//// [tests/cases/conformance/types/import/importTypeInJSDoc.ts] ////
//// [externs.d.ts]
declare namespace MyClass {
export interface Bar {
doer: (x: string) => void;
}
}
declare class MyClass {
field: string;
static Bar: (x: string, y?: number) => void;
constructor(x: MyClass.Bar);
}
declare global {
const Foo: typeof MyClass;
}
export = MyClass;
//// [index.js]
/**
* @typedef {import("./externs")} Foo
*/
let a = /** @type {Foo} */(/** @type {*} */(undefined));
a = new Foo({doer: Foo.Bar});
const q = /** @type {import("./externs").Bar} */({ doer: q => q });
const r = /** @type {typeof import("./externs").Bar} */(r => r);
//// [index.js]
/**
* @typedef {import("./externs")} Foo
*/
let a = /** @type {Foo} */ ( /** @type {*} */(undefined));
a = new Foo({ doer: Foo.Bar });
const q = /** @type {import("./externs").Bar} */ ({ doer: q => q });
const r = /** @type {typeof import("./externs").Bar} */ (r => r);
|