Skip to content

Commit

Permalink
fix (lib): Loosen predicate return types of typed arrays, adapt docs (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelTamm authored and RyanCavanaugh committed Sep 30, 2019
1 parent 9a7fdad commit 6bd3b21
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 79 deletions.
154 changes: 83 additions & 71 deletions src/lib/es5.d.ts

Large diffs are not rendered by default.

Expand Up @@ -41,7 +41,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts(
a1(...array2); // Error parameter type is (number|string)[]
~~~~~~
!!! error TS2552: Cannot find name 'array2'. Did you mean 'Array'?
!!! related TS2728 /.ts/lib.es5.d.ts:1373:13: 'Array' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1385:13: 'Array' is declared here.
a5([1, 2, "string", false, true]); // Error, parameter type is [any, any, [[any]]]
~~~~~~~~
!!! error TS2322: Type 'string' is not assignable to type '[[any]]'.
Expand Down
2 changes: 1 addition & 1 deletion tests/baselines/reference/promisePermutations.errors.txt
Expand Up @@ -447,7 +447,7 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2769: No overload m
!!! error TS2769: The last overload gave the following error.
!!! error TS2769: Argument of type '(x: any) => IPromise<string>' is not assignable to parameter of type '(error: any) => Promise<number>'.
!!! error TS2769: Property 'catch' is missing in type 'IPromise<string>' but required in type 'Promise<number>'.
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
!!! related TS2771 tests/cases/compiler/promisePermutations.ts:5:5: The last overload is declared here.
var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok

Expand Down
2 changes: 1 addition & 1 deletion tests/baselines/reference/promisePermutations2.errors.txt
Expand Up @@ -351,7 +351,7 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of
~~~~~~~~~
!!! error TS2345: Argument of type '(x: any) => IPromise<string>' is not assignable to parameter of type '(error: any) => Promise<number>'.
!!! error TS2345: Property 'catch' is missing in type 'IPromise<string>' but required in type 'Promise<number>'.
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok

var r11: IPromise<number>;
Expand Down
4 changes: 2 additions & 2 deletions tests/baselines/reference/promisePermutations3.errors.txt
Expand Up @@ -398,7 +398,7 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of
!!! error TS2769: The last overload gave the following error.
!!! error TS2769: Argument of type '(x: any) => IPromise<string>' is not assignable to parameter of type '(error: any) => Promise<number>'.
!!! error TS2769: Property 'catch' is missing in type 'IPromise<string>' but required in type 'Promise<number>'.
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
!!! related TS2771 tests/cases/compiler/promisePermutations3.ts:7:5: The last overload is declared here.
var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok

Expand Down Expand Up @@ -445,5 +445,5 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of
~~~~~~~~~~~~~~~
!!! 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>'.
!!! error TS2345: Property 'catch' is missing in type 'IPromise<any>' but required in type 'Promise<unknown>'.
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok
4 changes: 2 additions & 2 deletions tests/baselines/reference/promiseTypeInference.errors.txt
Expand Up @@ -32,7 +32,7 @@ tests/cases/compiler/promiseTypeInference.ts(10,39): error TS2769: No overload m
!!! error TS2769: Types of parameters 'success' and 'onfulfilled' are incompatible.
!!! error TS2769: Type 'TResult1 | PromiseLike<TResult1>' is not assignable to type 'IPromise<TResult1 | TResult2>'.
!!! error TS2769: Type 'TResult1' is not assignable to type 'IPromise<TResult1 | TResult2>'.
!!! related TS2728 /.ts/lib.es5.d.ts:1418:5: 'catch' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1430:5: 'catch' is declared here.
!!! related TS6502 tests/cases/compiler/promiseTypeInference.ts:2:23: The expected type comes from the return type of this signature.
!!! related TS6502 /.ts/lib.es5.d.ts:1411:57: The expected type comes from the return type of this signature.
!!! related TS6502 /.ts/lib.es5.d.ts:1423:57: The expected type comes from the return type of this signature.

2 changes: 1 addition & 1 deletion tests/baselines/reference/redefineArray.errors.txt
Expand Up @@ -5,4 +5,4 @@ tests/cases/compiler/redefineArray.ts(1,1): error TS2741: Property 'isArray' is
Array = function (n:number, s:string) {return n;};
~~~~~
!!! error TS2741: Property 'isArray' is missing in type '(n: number, s: string) => number' but required in type 'ArrayConstructor'.
!!! related TS2728 /.ts/lib.es5.d.ts:1369:5: 'isArray' is declared here.
!!! related TS2728 /.ts/lib.es5.d.ts:1381:5: 'isArray' is declared here.

0 comments on commit 6bd3b21

Please sign in to comment.