Skip to content

Commit 6bd3b21

Browse files
MichaelTammRyanCavanaugh
authored andcommitted
fix (lib): Loosen predicate return types of typed arrays, adapt docs (#31343)
fixes #31472
1 parent 9a7fdad commit 6bd3b21

7 files changed

+91
-79
lines changed

src/lib/es5.d.ts

+83-71
Large diffs are not rendered by default.

tests/baselines/reference/destructuringParameterDeclaration4.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(
4141
a1(...array2); // Error parameter type is (number|string)[]
4242
~~~~~~
4343
!!! error TS2552: Cannot find name 'array2'. Did you mean 'Array'?
44-
!!! related TS2728 /.ts/lib.es5.d.ts:1373:13: 'Array' is declared here.
44+
!!! related TS2728 /.ts/lib.es5.d.ts:1385:13: 'Array' is declared here.
4545
a5([1, 2, "string", false, true]); // Error, parameter type is [any, any, [[any]]]
4646
~~~~~~~~
4747
!!! error TS2322: Type 'string' is not assignable to type '[[any]]'.

tests/baselines/reference/promisePermutations.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2769: No overload m
447447
!!! error TS2769: The last overload gave the following error.
448448
!!! error TS2769: Argument of type '(x: any) => IPromise<string>' is not assignable to parameter of type '(error: any) => Promise<number>'.
449449
!!! error TS2769: Property 'catch' is missing in type 'IPromise<string>' but required in type 'Promise<number>'.
450-
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
450+
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
451451
!!! related TS2771 tests/cases/compiler/promisePermutations.ts:5:5: The last overload is declared here.
452452
var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok
453453

tests/baselines/reference/promisePermutations2.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of
351351
~~~~~~~~~
352352
!!! error TS2345: Argument of type '(x: any) => IPromise<string>' is not assignable to parameter of type '(error: any) => Promise<number>'.
353353
!!! error TS2345: Property 'catch' is missing in type 'IPromise<string>' but required in type 'Promise<number>'.
354-
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
354+
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
355355
var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok
356356

357357
var r11: IPromise<number>;

tests/baselines/reference/promisePermutations3.errors.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of
398398
!!! error TS2769: The last overload gave the following error.
399399
!!! error TS2769: Argument of type '(x: any) => IPromise<string>' is not assignable to parameter of type '(error: any) => Promise<number>'.
400400
!!! error TS2769: Property 'catch' is missing in type 'IPromise<string>' but required in type 'Promise<number>'.
401-
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
401+
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
402402
!!! related TS2771 tests/cases/compiler/promisePermutations3.ts:7:5: The last overload is declared here.
403403
var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok
404404

@@ -445,5 +445,5 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of
445445
~~~~~~~~~~~~~~~
446446
!!! error TS2345: Argument of type '{ <T>(x: T): IPromise<T>; <T>(x: T, y: T): Promise<T>; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise<unknown>'.
447447
!!! error TS2345: Property 'catch' is missing in type 'IPromise<any>' but required in type 'Promise<unknown>'.
448-
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
448+
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
449449
var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok

tests/baselines/reference/promiseTypeInference.errors.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ tests/cases/compiler/promiseTypeInference.ts(10,39): error TS2769: No overload m
3232
!!! error TS2769: Types of parameters 'success' and 'onfulfilled' are incompatible.
3333
!!! error TS2769: Type 'TResult1 | PromiseLike<TResult1>' is not assignable to type 'IPromise<TResult1 | TResult2>'.
3434
!!! error TS2769: Type 'TResult1' is not assignable to type 'IPromise<TResult1 | TResult2>'.
35-
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
35+
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
3636
!!! related TS6502 tests/cases/compiler/promiseTypeInference.ts:2:23: The expected type comes from the return type of this signature.
37-
!!! related TS6502 /.ts/lib.es5.d.ts:1411:57: The expected type comes from the return type of this signature.
37+
!!! related TS6502 /.ts/lib.es5.d.ts:1423:57: The expected type comes from the return type of this signature.
3838

tests/baselines/reference/redefineArray.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ tests/cases/compiler/redefineArray.ts(1,1): error TS2741: Property 'isArray' is
55
Array = function (n:number, s:string) {return n;};
66
~~~~~
77
!!! error TS2741: Property 'isArray' is missing in type '(n: number, s: string) => number' but required in type 'ArrayConstructor'.
8-
!!! related TS2728 /.ts/lib.es5.d.ts:1369:5: 'isArray' is declared here.
8+
!!! related TS2728 /.ts/lib.es5.d.ts:1381:5: 'isArray' is declared here.

0 commit comments

Comments
 (0)