File: narrowTypeByInstanceof.types

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 (82 lines) | stat: -rw-r--r-- 1,969 bytes parent folder | download | duplicates (2)
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
72
73
74
75
76
77
78
79
80
81
82
=== tests/cases/compiler/narrowTypeByInstanceof.ts ===
    class Match {
>Match : Match

        public range(): any {
>range : () => any

            return undefined;
>undefined : undefined
        }
    }

    class FileMatch {
>FileMatch : FileMatch

        public resource(): any {
>resource : () => any

            return undefined;
>undefined : undefined
        }
    }

type FileMatchOrMatch = FileMatch | Match;
>FileMatchOrMatch : FileMatchOrMatch


let elementA: FileMatchOrMatch, elementB: FileMatchOrMatch;
>elementA : FileMatchOrMatch
>elementB : FileMatchOrMatch

if (elementA instanceof FileMatch && elementB instanceof FileMatch) {
>elementA instanceof FileMatch && elementB instanceof FileMatch : boolean
>elementA instanceof FileMatch : boolean
>elementA : FileMatchOrMatch
>FileMatch : typeof FileMatch
>elementB instanceof FileMatch : boolean
>elementB : FileMatchOrMatch
>FileMatch : typeof FileMatch

    let a = elementA.resource().path;
>a : any
>elementA.resource().path : any
>elementA.resource() : any
>elementA.resource : () => any
>elementA : FileMatch
>resource : () => any
>path : any

    let b = elementB.resource().path;
>b : any
>elementB.resource().path : any
>elementB.resource() : any
>elementB.resource : () => any
>elementB : FileMatch
>resource : () => any
>path : any

} else if (elementA instanceof Match && elementB instanceof Match) {
>elementA instanceof Match && elementB instanceof Match : boolean
>elementA instanceof Match : boolean
>elementA : FileMatchOrMatch
>Match : typeof Match
>elementB instanceof Match : boolean
>elementB : FileMatchOrMatch
>Match : typeof Match

    let a = elementA.range();
>a : any
>elementA.range() : any
>elementA.range : () => any
>elementA : Match
>range : () => any

    let b = elementB.range();
>b : any
>elementB.range() : any
>elementB.range : () => any
>elementB : Match
>range : () => any
}