File: importTypeInJSDoc.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (36 lines) | stat: -rw-r--r-- 973 bytes parent folder | download | duplicates (5)
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);