Skip to content

Commit 09f5182

Browse files
committed
Re-add concat overload to support inferring tuples
1 parent c578367 commit 09f5182

File tree

5 files changed

+48
-0
lines changed

5 files changed

+48
-0
lines changed

src/lib/es5.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,6 +1108,11 @@ interface Array<T> {
11081108
* Removes the last element from an array and returns it.
11091109
*/
11101110
pop(): T | undefined;
1111+
/**
1112+
* Combines two or more arrays.
1113+
* @param items Additional items to add to the end of array1.
1114+
*/
1115+
concat(...items: T[][]): T[];
11111116
/**
11121117
* Combines two or more arrays.
11131118
* @param items Additional items to add to the end of array1.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
//// [concatTuples.ts]
2+
let ijs: [number, number][] = [[1, 2]];
3+
ijs = ijs.concat([[3, 4], [5, 6]]);
4+
5+
6+
//// [concatTuples.js]
7+
var ijs = [[1, 2]];
8+
ijs = ijs.concat([[3, 4], [5, 6]]);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
=== tests/cases/compiler/concatTuples.ts ===
2+
let ijs: [number, number][] = [[1, 2]];
3+
>ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3))
4+
5+
ijs = ijs.concat([[3, 4], [5, 6]]);
6+
>ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3))
7+
>ijs.concat : Symbol(Array.concat, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
8+
>ijs : Symbol(ijs, Decl(concatTuples.ts, 0, 3))
9+
>concat : Symbol(Array.concat, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
10+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
=== tests/cases/compiler/concatTuples.ts ===
2+
let ijs: [number, number][] = [[1, 2]];
3+
>ijs : [number, number][]
4+
>[[1, 2]] : [number, number][]
5+
>[1, 2] : [number, number]
6+
>1 : number
7+
>2 : number
8+
9+
ijs = ijs.concat([[3, 4], [5, 6]]);
10+
>ijs = ijs.concat([[3, 4], [5, 6]]) : [number, number][]
11+
>ijs : [number, number][]
12+
>ijs.concat([[3, 4], [5, 6]]) : [number, number][]
13+
>ijs.concat : { (...items: [number, number][][]): [number, number][]; (...items: ([number, number] | [number, number][])[]): [number, number][]; }
14+
>ijs : [number, number][]
15+
>concat : { (...items: [number, number][][]): [number, number][]; (...items: ([number, number] | [number, number][])[]): [number, number][]; }
16+
>[[3, 4], [5, 6]] : [number, number][]
17+
>[3, 4] : [number, number]
18+
>3 : number
19+
>4 : number
20+
>[5, 6] : [number, number]
21+
>5 : number
22+
>6 : number
23+

tests/cases/compiler/concatTuples.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
let ijs: [number, number][] = [[1, 2]];
2+
ijs = ijs.concat([[3, 4], [5, 6]]);

0 commit comments

Comments
 (0)