File: importTypeInJSDoc.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (71 lines) | stat: -rw-r--r-- 2,177 bytes parent folder | download | duplicates (4)
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
67
68
69
70
71
=== tests/cases/conformance/types/import/externs.d.ts ===
declare namespace MyClass {
    export interface Bar {
        doer: (x: string) => void;
>doer : (x: string) => void
>x : string
    }
}
declare class MyClass {
>MyClass : MyClass

    field: string;
>field : string

    static Bar: (x: string, y?: number) => void;
>Bar : (x: string, y?: number) => void
>x : string
>y : number

    constructor(x: MyClass.Bar);
>x : MyClass.Bar
>MyClass : any
}
declare global {
>global : typeof global

    const Foo: typeof MyClass;
>Foo : typeof MyClass
>MyClass : typeof MyClass
}
export = MyClass;
>MyClass : MyClass

=== tests/cases/conformance/types/import/index.js ===
/**
 * @typedef {import("./externs")} Foo
 */

let a = /** @type {Foo} */(/** @type {*} */(undefined)); 
>a : import("tests/cases/conformance/types/import/externs")
>(/** @type {*} */(undefined)) : import("tests/cases/conformance/types/import/externs")
>(undefined) : any
>undefined : undefined

a = new Foo({doer: Foo.Bar});
>a = new Foo({doer: Foo.Bar}) : import("tests/cases/conformance/types/import/externs")
>a : import("tests/cases/conformance/types/import/externs")
>new Foo({doer: Foo.Bar}) : import("tests/cases/conformance/types/import/externs")
>Foo : typeof import("tests/cases/conformance/types/import/externs")
>{doer: Foo.Bar} : { doer: (x: string, y?: number) => void; }
>doer : (x: string, y?: number) => void
>Foo.Bar : (x: string, y?: number) => void
>Foo : typeof import("tests/cases/conformance/types/import/externs")
>Bar : (x: string, y?: number) => void

const q = /** @type {import("./externs").Bar} */({ doer: q => q });
>q : import("tests/cases/conformance/types/import/externs").Bar
>({ doer: q => q }) : import("tests/cases/conformance/types/import/externs").Bar
>{ doer: q => q } : { doer: (q: string) => string; }
>doer : (q: string) => string
>q => q : (q: string) => string
>q : string
>q : string

const r = /** @type {typeof import("./externs").Bar} */(r => r);
>r : (x: string, y?: number) => void
>(r => r) : (x: string, y?: number) => void
>r => r : (r: string) => string
>r : string
>r : string