File tree 2 files changed +16
-14
lines changed
2 files changed +16
-14
lines changed Original file line number Diff line number Diff line change @@ -1376,7 +1376,7 @@ interface ArrayConstructor {
1376
1376
( arrayLength ?: number ) : any [ ] ;
1377
1377
< T > ( arrayLength : number ) : T [ ] ;
1378
1378
< T > ( ...items : T [ ] ) : T [ ] ;
1379
- isArray ( arg : any ) : arg is any [ ] ;
1379
+ isArray < T > ( arg : T | { } ) : arg is T extends readonly any [ ] ? readonly any [ ] : any [ ] ;
1380
1380
readonly prototype : any [ ] ;
1381
1381
}
1382
1382
Original file line number Diff line number Diff line change
1
+ // https://github.com/microsoft/TypeScript/issues/31155
2
+
1
3
declare const MyArray : {
2
4
isArray < T > ( arg : T | { } ) : arg is T extends readonly any [ ] ? readonly any [ ] : any [ ] ;
3
5
} ;
@@ -7,23 +9,23 @@ declare const b: string[] | string;
7
9
declare const c : unknown ;
8
10
9
11
if ( MyArray . isArray ( a ) ) {
10
- a ;
12
+ a ; // readonly string[]
11
13
}
12
14
else {
13
- a ;
15
+ a ; // string
14
16
}
15
- a ;
17
+ a ; // readonly string[] | string;
16
18
17
19
if ( MyArray . isArray ( b ) ) {
18
- b ;
20
+ b ; // string[] | string;
19
21
}
20
22
else {
21
- b ;
23
+ b ; // string
22
24
}
23
- b ;
25
+ b ; // string[] | string;
24
26
25
27
if ( MyArray . isArray ( c ) ) {
26
- c ;
28
+ c ; // any[]
27
29
}
28
30
29
31
@@ -33,22 +35,22 @@ function f<T>(x: T) {
33
35
const c : T = null ! ;
34
36
35
37
if ( MyArray . isArray ( a ) ) {
36
- a ;
38
+ a ; // readonly T[]
37
39
}
38
40
else {
39
- a ;
41
+ a ; // string
40
42
}
41
- a ;
43
+ a ; // readonly T[] | string;
42
44
43
45
if ( MyArray . isArray ( b ) ) {
44
- b ;
46
+ b ; // T[]
45
47
}
46
48
else {
47
- b ;
49
+ b ; // string
48
50
}
49
51
b ;
50
52
51
53
if ( MyArray . isArray ( c ) ) {
52
- c ;
54
+ c ; // T & (T extends readonly any[] ? readonly any[] : any[])
53
55
}
54
56
}
You can’t perform that action at this time.
0 commit comments