Re-add concat overload to support inferring tuples

This commit is contained in:
Nathan Shively-Sanders 2016-07-27 15:33:36 -07:00
parent c578367c26
commit 09f518243d
5 changed files with 48 additions and 0 deletions

5
src/lib/es5.d.ts vendored
View file

@ -1108,6 +1108,11 @@ interface Array<T> {
* Removes the last element from an array and returns it.
*/
pop(): T | undefined;
/**
* Combines two or more arrays.
* @param items Additional items to add to the end of array1.
*/
concat(...items: T[][]): T[];
/**
* Combines two or more arrays.
* @param items Additional items to add to the end of array1.

View file

@ -0,0 +1,8 @@
//// [concatTuples.ts]
let ijs: [number, number][] = [[1, 2]];
ijs = ijs.concat([[3, 4], [5, 6]]);
//// [concatTuples.js]
var ijs = [[1, 2]];
ijs = ijs.concat([[3, 4], [5, 6]]);

View file

@ -0,0 +1,10 @@
=== tests/cases/compiler/concatTuples.ts ===
let ijs: [number, number][] = [[1, 2]];
>ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3))
ijs = ijs.concat([[3, 4], [5, 6]]);
>ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3))
>ijs.concat : Symbol(Array.concat, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
>ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3))
>concat : Symbol(Array.concat, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))

View file

@ -0,0 +1,23 @@
=== tests/cases/compiler/concatTuples.ts ===
let ijs: [number, number][] = [[1, 2]];
>ijs : [number, number][]
>[[1, 2]] : [number, number][]
>[1, 2] : [number, number]
>1 : number
>2 : number
ijs = ijs.concat([[3, 4], [5, 6]]);
>ijs = ijs.concat([[3, 4], [5, 6]]) : [number, number][]
>ijs : [number, number][]
>ijs.concat([[3, 4], [5, 6]]) : [number, number][]
>ijs.concat : { (...items: [number, number][][]): [number, number][]; (...items: ([number, number] | [number, number][])[]): [number, number][]; }
>ijs : [number, number][]
>concat : { (...items: [number, number][][]): [number, number][]; (...items: ([number, number] | [number, number][])[]): [number, number][]; }
>[[3, 4], [5, 6]] : [number, number][]
>[3, 4] : [number, number]
>3 : number
>4 : number
>[5, 6] : [number, number]
>5 : number
>6 : number

View file

@ -0,0 +1,2 @@
let ijs: [number, number][] = [[1, 2]];
ijs = ijs.concat([[3, 4], [5, 6]]);