@@ -21,20 +21,22 @@ interface Ari<T> {
21
21
>Ari : Symbol(Ari, Decl(booleanFilterAnyArray.ts, 4, 1))
22
22
>T : Symbol(T, Decl(booleanFilterAnyArray.ts, 6, 14))
23
23
24
- filter<S extends T>(cb1: (value: T) => value is S): Ari<S>;
25
- >filter : Symbol(Ari.filter, Decl(booleanFilterAnyArray.ts, 6, 18), Decl(booleanFilterAnyArray.ts, 7, 63 ))
24
+ filter<S extends T>(cb1: (value: T) => value is S): T extends any ? Ari<any> : Ari<S>;
25
+ >filter : Symbol(Ari.filter, Decl(booleanFilterAnyArray.ts, 6, 18), Decl(booleanFilterAnyArray.ts, 7, 90 ))
26
26
>S : Symbol(S, Decl(booleanFilterAnyArray.ts, 7, 11))
27
27
>T : Symbol(T, Decl(booleanFilterAnyArray.ts, 6, 14))
28
28
>cb1 : Symbol(cb1, Decl(booleanFilterAnyArray.ts, 7, 24))
29
29
>value : Symbol(value, Decl(booleanFilterAnyArray.ts, 7, 30))
30
30
>T : Symbol(T, Decl(booleanFilterAnyArray.ts, 6, 14))
31
31
>value : Symbol(value, Decl(booleanFilterAnyArray.ts, 7, 30))
32
32
>S : Symbol(S, Decl(booleanFilterAnyArray.ts, 7, 11))
33
+ >T : Symbol(T, Decl(booleanFilterAnyArray.ts, 6, 14))
34
+ >Ari : Symbol(Ari, Decl(booleanFilterAnyArray.ts, 4, 1))
33
35
>Ari : Symbol(Ari, Decl(booleanFilterAnyArray.ts, 4, 1))
34
36
>S : Symbol(S, Decl(booleanFilterAnyArray.ts, 7, 11))
35
37
36
38
filter(cb2: (value: T) => unknown): Ari<T>;
37
- >filter : Symbol(Ari.filter, Decl(booleanFilterAnyArray.ts, 6, 18), Decl(booleanFilterAnyArray.ts, 7, 63 ))
39
+ >filter : Symbol(Ari.filter, Decl(booleanFilterAnyArray.ts, 6, 18), Decl(booleanFilterAnyArray.ts, 7, 90 ))
38
40
>cb2 : Symbol(cb2, Decl(booleanFilterAnyArray.ts, 8, 11))
39
41
>value : Symbol(value, Decl(booleanFilterAnyArray.ts, 8, 17))
40
42
>T : Symbol(T, Decl(booleanFilterAnyArray.ts, 6, 14))
@@ -55,18 +57,52 @@ var xs: Ari<any>;
55
57
56
58
var xs = anys.filter(Bullean)
57
59
>xs : Symbol(xs, Decl(booleanFilterAnyArray.ts, 12, 3), Decl(booleanFilterAnyArray.ts, 13, 3))
58
- >anys.filter : Symbol(Ari.filter, Decl(booleanFilterAnyArray.ts, 6, 18), Decl(booleanFilterAnyArray.ts, 7, 63 ))
60
+ >anys.filter : Symbol(Ari.filter, Decl(booleanFilterAnyArray.ts, 6, 18), Decl(booleanFilterAnyArray.ts, 7, 90 ))
59
61
>anys : Symbol(anys, Decl(booleanFilterAnyArray.ts, 11, 11))
60
- >filter : Symbol(Ari.filter, Decl(booleanFilterAnyArray.ts, 6, 18), Decl(booleanFilterAnyArray.ts, 7, 63 ))
62
+ >filter : Symbol(Ari.filter, Decl(booleanFilterAnyArray.ts, 6, 18), Decl(booleanFilterAnyArray.ts, 7, 90 ))
61
63
>Bullean : Symbol(Bullean, Decl(booleanFilterAnyArray.ts, 0, 0), Decl(booleanFilterAnyArray.ts, 10, 11))
62
64
63
65
declare let realanys: any[];
64
66
>realanys : Symbol(realanys, Decl(booleanFilterAnyArray.ts, 15, 11))
65
67
68
+ var ys: any[];
69
+ >ys : Symbol(ys, Decl(booleanFilterAnyArray.ts, 16, 3), Decl(booleanFilterAnyArray.ts, 17, 3))
70
+
66
71
var ys = realanys.filter(Boolean)
67
- >ys : Symbol(ys, Decl(booleanFilterAnyArray.ts, 16, 3))
72
+ >ys : Symbol(ys, Decl(booleanFilterAnyArray.ts, 16, 3), Decl(booleanFilterAnyArray.ts, 17, 3) )
68
73
>realanys.filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
69
74
>realanys : Symbol(realanys, Decl(booleanFilterAnyArray.ts, 15, 11))
70
75
>filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
71
76
>Boolean : Symbol(Boolean, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
72
77
78
+ var foo = [{ name: 'x' }]
79
+ >foo : Symbol(foo, Decl(booleanFilterAnyArray.ts, 19, 3))
80
+ >name : Symbol(name, Decl(booleanFilterAnyArray.ts, 19, 12))
81
+
82
+ var foor: Array<{name: string}>
83
+ >foor : Symbol(foor, Decl(booleanFilterAnyArray.ts, 20, 3), Decl(booleanFilterAnyArray.ts, 21, 3))
84
+ >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
85
+ >name : Symbol(name, Decl(booleanFilterAnyArray.ts, 20, 17))
86
+
87
+ var foor = foo.filter(x => x.name)
88
+ >foor : Symbol(foor, Decl(booleanFilterAnyArray.ts, 20, 3), Decl(booleanFilterAnyArray.ts, 21, 3))
89
+ >foo.filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
90
+ >foo : Symbol(foo, Decl(booleanFilterAnyArray.ts, 19, 3))
91
+ >filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
92
+ >x : Symbol(x, Decl(booleanFilterAnyArray.ts, 21, 22))
93
+ >x.name : Symbol(name, Decl(booleanFilterAnyArray.ts, 19, 12))
94
+ >x : Symbol(x, Decl(booleanFilterAnyArray.ts, 21, 22))
95
+ >name : Symbol(name, Decl(booleanFilterAnyArray.ts, 19, 12))
96
+
97
+ var foos: Array<boolean>
98
+ >foos : Symbol(foos, Decl(booleanFilterAnyArray.ts, 22, 3), Decl(booleanFilterAnyArray.ts, 23, 3))
99
+ >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
100
+
101
+ var foos = [true, true, false, null].filter((thing): thing is boolean => thing !== null)
102
+ >foos : Symbol(foos, Decl(booleanFilterAnyArray.ts, 22, 3), Decl(booleanFilterAnyArray.ts, 23, 3))
103
+ >[true, true, false, null].filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
104
+ >filter : Symbol(Array.filter, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
105
+ >thing : Symbol(thing, Decl(booleanFilterAnyArray.ts, 23, 45))
106
+ >thing : Symbol(thing, Decl(booleanFilterAnyArray.ts, 23, 45))
107
+ >thing : Symbol(thing, Decl(booleanFilterAnyArray.ts, 23, 45))
108
+
0 commit comments