22// https://github.com/microsoft/TypeScript/issues/31155
33
44declare const MyArray: {
5- >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? readonly any[] : any[]; }
5+ >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]; }
66
7- isArray<T>(arg: T | {}): arg is T extends readonly any[] ? readonly any[] : any[];
8- >isArray : <T>(arg: T | {}) => arg is T extends readonly any[] ? readonly any[] : any[]
7+ isArray<T>(arg: T | {}): arg is T extends readonly any[] ? (unknown extends T ? never : readonly any[]) : any[];
8+ >isArray : <T>(arg: T | {}) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
99>arg : {} | T
1010
1111};
@@ -21,9 +21,9 @@ declare const c: unknown;
2121
2222if (MyArray.isArray(a)) {
2323>MyArray.isArray(a) : boolean
24- >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
25- >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? readonly any[] : any[]; }
26- >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
24+ >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
25+ >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]; }
26+ >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
2727>a : string | readonly string[]
2828
2929 a; // readonly string[]
@@ -38,9 +38,9 @@ a; // readonly string[] | string;
3838
3939if (MyArray.isArray(b)) {
4040>MyArray.isArray(b) : boolean
41- >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
42- >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? readonly any[] : any[]; }
43- >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
41+ >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
42+ >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]; }
43+ >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
4444>b : string | string[]
4545
4646 b; // string[] | string;
@@ -55,9 +55,9 @@ b; // string[] | string;
5555
5656if (MyArray.isArray(c)) {
5757>MyArray.isArray(c) : boolean
58- >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
59- >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? readonly any[] : any[]; }
60- >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
58+ >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
59+ >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]; }
60+ >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
6161>c : unknown
6262
6363 c; // any[]
@@ -86,9 +86,9 @@ function f<T>(x: T) {
8686
8787 if (MyArray.isArray(a)) {
8888>MyArray.isArray(a) : boolean
89- >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
90- >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? readonly any[] : any[]; }
91- >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
89+ >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
90+ >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]; }
91+ >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
9292>a : string | readonly T[]
9393
9494 a; // readonly T[]
@@ -103,9 +103,9 @@ function f<T>(x: T) {
103103
104104 if (MyArray.isArray(b)) {
105105>MyArray.isArray(b) : boolean
106- >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
107- >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? readonly any[] : any[]; }
108- >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
106+ >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
107+ >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]; }
108+ >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
109109>b : string | T[]
110110
111111 b; // T[]
@@ -120,13 +120,13 @@ function f<T>(x: T) {
120120
121121 if (MyArray.isArray(c)) {
122122>MyArray.isArray(c) : boolean
123- >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
124- >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? readonly any[] : any[]; }
125- >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? readonly any[] : any[]
123+ >MyArray.isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
124+ >MyArray : { isArray<T>(arg: {} | T): arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]; }
125+ >isArray : <T>(arg: {} | T) => arg is T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[]
126126>c : T
127127
128128 c; // T & (T extends readonly any[] ? readonly any[] : any[])
129- >c : T & (T extends readonly any[] ? readonly any[] : any[])
129+ >c : T & (T extends readonly any[] ? unknown extends T ? never : readonly any[] : any[])
130130 }
131131}
132132
0 commit comments