Skip to content

Commit 1c9fae8

Browse files
committed
Add tuple type test
1 parent 5dc8402 commit 1c9fae8

4 files changed

Lines changed: 93 additions & 0 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//// [thisTypeInTuples.ts]
2+
interface Array<T> {
3+
slice(): this;
4+
}
5+
6+
let t: [number, string] = [42, "hello"];
7+
let a = t.slice();
8+
let b = t.slice(1);
9+
let c = t.slice(0, 1);
10+
11+
12+
//// [thisTypeInTuples.js]
13+
var t = [42, "hello"];
14+
var a = t.slice();
15+
var b = t.slice(1);
16+
var c = t.slice(0, 1);
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
=== tests/cases/conformance/types/thisType/thisTypeInTuples.ts ===
2+
interface Array<T> {
3+
>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(thisTypeInTuples.ts, 0, 0))
4+
>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(thisTypeInTuples.ts, 0, 16))
5+
6+
slice(): this;
7+
>slice : Symbol(slice, Decl(lib.d.ts, 1048, 15), Decl(thisTypeInTuples.ts, 0, 20))
8+
}
9+
10+
let t: [number, string] = [42, "hello"];
11+
>t : Symbol(t, Decl(thisTypeInTuples.ts, 4, 3))
12+
13+
let a = t.slice();
14+
>a : Symbol(a, Decl(thisTypeInTuples.ts, 5, 3))
15+
>t.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15), Decl(thisTypeInTuples.ts, 0, 20))
16+
>t : Symbol(t, Decl(thisTypeInTuples.ts, 4, 3))
17+
>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15), Decl(thisTypeInTuples.ts, 0, 20))
18+
19+
let b = t.slice(1);
20+
>b : Symbol(b, Decl(thisTypeInTuples.ts, 6, 3))
21+
>t.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15), Decl(thisTypeInTuples.ts, 0, 20))
22+
>t : Symbol(t, Decl(thisTypeInTuples.ts, 4, 3))
23+
>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15), Decl(thisTypeInTuples.ts, 0, 20))
24+
25+
let c = t.slice(0, 1);
26+
>c : Symbol(c, Decl(thisTypeInTuples.ts, 7, 3))
27+
>t.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15), Decl(thisTypeInTuples.ts, 0, 20))
28+
>t : Symbol(t, Decl(thisTypeInTuples.ts, 4, 3))
29+
>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15), Decl(thisTypeInTuples.ts, 0, 20))
30+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
=== tests/cases/conformance/types/thisType/thisTypeInTuples.ts ===
2+
interface Array<T> {
3+
>Array : T[]
4+
>T : T
5+
6+
slice(): this;
7+
>slice : { (start?: number, end?: number): T[]; (): this; }
8+
}
9+
10+
let t: [number, string] = [42, "hello"];
11+
>t : [number, string]
12+
>[42, "hello"] : [number, string]
13+
>42 : number
14+
>"hello" : string
15+
16+
let a = t.slice();
17+
>a : [number, string]
18+
>t.slice() : [number, string]
19+
>t.slice : { (start?: number, end?: number): (number | string)[]; (): [number, string]; }
20+
>t : [number, string]
21+
>slice : { (start?: number, end?: number): (number | string)[]; (): [number, string]; }
22+
23+
let b = t.slice(1);
24+
>b : (number | string)[]
25+
>t.slice(1) : (number | string)[]
26+
>t.slice : { (start?: number, end?: number): (number | string)[]; (): [number, string]; }
27+
>t : [number, string]
28+
>slice : { (start?: number, end?: number): (number | string)[]; (): [number, string]; }
29+
>1 : number
30+
31+
let c = t.slice(0, 1);
32+
>c : (number | string)[]
33+
>t.slice(0, 1) : (number | string)[]
34+
>t.slice : { (start?: number, end?: number): (number | string)[]; (): [number, string]; }
35+
>t : [number, string]
36+
>slice : { (start?: number, end?: number): (number | string)[]; (): [number, string]; }
37+
>0 : number
38+
>1 : number
39+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
interface Array<T> {
2+
slice(): this;
3+
}
4+
5+
let t: [number, string] = [42, "hello"];
6+
let a = t.slice();
7+
let b = t.slice(1);
8+
let c = t.slice(0, 1);

0 commit comments

Comments
 (0)