File: narrowFromAnyWithTypePredicate.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (118 lines) | stat: -rw-r--r-- 2,017 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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
=== tests/cases/conformance/types/any/narrowFromAnyWithTypePredicate.ts ===
declare var x: any;
>x : any

declare function isFunction(x): x is Function;
>isFunction : (x: any) => x is Function
>x : any

declare function isObject(x): x is Object;
>isObject : (x: any) => x is Object
>x : any

declare function isAnything(x): x is {};
>isAnything : (x: any) => x is {}
>x : any

declare function isError(x): x is Error;
>isError : (x: any) => x is Error
>x : any

declare function isDate(x): x is Date;
>isDate : (x: any) => x is Date
>x : any


if (isFunction(x)) { // 'any' is not narrowed when target type is 'Function'
>isFunction(x) : boolean
>isFunction : (x: any) => x is Function
>x : any

    x();
>x() : any
>x : any

    x(1, 2, 3);
>x(1, 2, 3) : any
>x : any
>1 : 1
>2 : 2
>3 : 3

    x("hello!");
>x("hello!") : any
>x : any
>"hello!" : "hello!"

    x.prop;
>x.prop : any
>x : any
>prop : any
}

if (isObject(x)) { // 'any' is not narrowed when target type is 'Object'
>isObject(x) : boolean
>isObject : (x: any) => x is Object
>x : any

    x.method();
>x.method() : any
>x.method : any
>x : any
>method : any

    x();
>x() : any
>x : any
}

if (isAnything(x)) { // 'any' is narrowed to types other than 'Function'/'Object' (including {})
>isAnything(x) : boolean
>isAnything : (x: any) => x is {}
>x : any

    x.method();
>x.method() : any
>x.method : any
>x : {}
>method : any

    x();
>x() : any
>x : {}
}

if (isError(x)) { 
>isError(x) : boolean
>isError : (x: any) => x is Error
>x : any

    x.message;
>x.message : string
>x : Error
>message : string

    x.mesage;
>x.mesage : any
>x : Error
>mesage : any
}

if (isDate(x)) {
>isDate(x) : boolean
>isDate : (x: any) => x is Date
>x : any

    x.getDate();
>x.getDate() : number
>x.getDate : () => number
>x : Date
>getDate : () => number

    x.getHuors();
>x.getHuors() : any
>x.getHuors : any
>x : Date
>getHuors : any
}