|
1 | 1 | === tests/cases/conformance/types/tuple/indexerWithTuple.ts === |
2 | | -var strNumTuple: [string, number] = ["foo", 10]; |
| 2 | +var strNumTuple: [string, number] = ["foo", 10]; |
3 | 3 | >strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) |
4 | 4 |
|
5 | 5 | var numTupleTuple: [number, [string, number]] = [10, ["bar", 20]]; |
6 | 6 | >numTupleTuple : Symbol(numTupleTuple, Decl(indexerWithTuple.ts, 1, 3)) |
7 | 7 |
|
8 | | -var unionTuple1: [number, string| number] = [10, "foo"]; |
| 8 | +var unionTuple1: [number, string| number] = [10, "foo"]; |
9 | 9 | >unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) |
10 | 10 |
|
11 | | -var unionTuple2: [boolean, string| number] = [true, "foo"]; |
| 11 | +var unionTuple2: [boolean, string| number] = [true, "foo"]; |
12 | 12 | >unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) |
13 | 13 |
|
14 | 14 | // no error |
@@ -61,71 +61,84 @@ var ele17 = numTupleTuple[2]; // number | [string, number] |
61 | 61 | >ele17 : Symbol(ele17, Decl(indexerWithTuple.ts, 16, 3)) |
62 | 62 | >numTupleTuple : Symbol(numTupleTuple, Decl(indexerWithTuple.ts, 1, 3)) |
63 | 63 |
|
| 64 | +var ele19 = strNumTuple[-1] // undefined |
| 65 | +>ele19 : Symbol(ele19, Decl(indexerWithTuple.ts, 17, 3)) |
| 66 | +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) |
| 67 | + |
64 | 68 | var eleUnion10 = unionTuple1[0]; // number |
65 | | ->eleUnion10 : Symbol(eleUnion10, Decl(indexerWithTuple.ts, 17, 3)) |
| 69 | +>eleUnion10 : Symbol(eleUnion10, Decl(indexerWithTuple.ts, 19, 3)) |
66 | 70 | >unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) |
67 | 71 | >0 : Symbol(0) |
68 | 72 |
|
69 | 73 | var eleUnion11 = unionTuple1[1]; // string | number |
70 | | ->eleUnion11 : Symbol(eleUnion11, Decl(indexerWithTuple.ts, 18, 3)) |
| 74 | +>eleUnion11 : Symbol(eleUnion11, Decl(indexerWithTuple.ts, 20, 3)) |
71 | 75 | >unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) |
72 | 76 | >1 : Symbol(1) |
73 | 77 |
|
74 | 78 | var eleUnion12 = unionTuple1[2]; // string | number |
75 | | ->eleUnion12 : Symbol(eleUnion12, Decl(indexerWithTuple.ts, 19, 3)) |
| 79 | +>eleUnion12 : Symbol(eleUnion12, Decl(indexerWithTuple.ts, 21, 3)) |
76 | 80 | >unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) |
77 | 81 |
|
78 | 82 | var eleUnion13 = unionTuple1[idx0]; // string | number |
79 | | ->eleUnion13 : Symbol(eleUnion13, Decl(indexerWithTuple.ts, 20, 3)) |
| 83 | +>eleUnion13 : Symbol(eleUnion13, Decl(indexerWithTuple.ts, 22, 3)) |
80 | 84 | >unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) |
81 | 85 | >idx0 : Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) |
82 | 86 |
|
83 | 87 | var eleUnion14 = unionTuple1[idx1]; // string | number |
84 | | ->eleUnion14 : Symbol(eleUnion14, Decl(indexerWithTuple.ts, 21, 3)) |
| 88 | +>eleUnion14 : Symbol(eleUnion14, Decl(indexerWithTuple.ts, 23, 3)) |
85 | 89 | >unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) |
86 | 90 | >idx1 : Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) |
87 | 91 |
|
88 | 92 | var eleUnion15 = unionTuple1["0"]; // number |
89 | | ->eleUnion15 : Symbol(eleUnion15, Decl(indexerWithTuple.ts, 22, 3)) |
| 93 | +>eleUnion15 : Symbol(eleUnion15, Decl(indexerWithTuple.ts, 24, 3)) |
90 | 94 | >unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) |
91 | 95 | >"0" : Symbol(0) |
92 | 96 |
|
93 | 97 | var eleUnion16 = unionTuple1["1"]; // string | number |
94 | | ->eleUnion16 : Symbol(eleUnion16, Decl(indexerWithTuple.ts, 23, 3)) |
| 98 | +>eleUnion16 : Symbol(eleUnion16, Decl(indexerWithTuple.ts, 25, 3)) |
95 | 99 | >unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) |
96 | 100 | >"1" : Symbol(1) |
97 | 101 |
|
98 | 102 | var eleUnion20 = unionTuple2[0]; // boolean |
99 | | ->eleUnion20 : Symbol(eleUnion20, Decl(indexerWithTuple.ts, 25, 3)) |
| 103 | +>eleUnion20 : Symbol(eleUnion20, Decl(indexerWithTuple.ts, 27, 3)) |
100 | 104 | >unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) |
101 | 105 | >0 : Symbol(0) |
102 | 106 |
|
103 | 107 | var eleUnion21 = unionTuple2[1]; // string | number |
104 | | ->eleUnion21 : Symbol(eleUnion21, Decl(indexerWithTuple.ts, 26, 3)) |
| 108 | +>eleUnion21 : Symbol(eleUnion21, Decl(indexerWithTuple.ts, 28, 3)) |
105 | 109 | >unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) |
106 | 110 | >1 : Symbol(1) |
107 | 111 |
|
108 | 112 | var eleUnion22 = unionTuple2[2]; // string | number | boolean |
109 | | ->eleUnion22 : Symbol(eleUnion22, Decl(indexerWithTuple.ts, 27, 3)) |
| 113 | +>eleUnion22 : Symbol(eleUnion22, Decl(indexerWithTuple.ts, 29, 3)) |
110 | 114 | >unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) |
111 | 115 |
|
112 | 116 | var eleUnion23 = unionTuple2[idx0]; // string | number | boolean |
113 | | ->eleUnion23 : Symbol(eleUnion23, Decl(indexerWithTuple.ts, 28, 3)) |
| 117 | +>eleUnion23 : Symbol(eleUnion23, Decl(indexerWithTuple.ts, 30, 3)) |
114 | 118 | >unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) |
115 | 119 | >idx0 : Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) |
116 | 120 |
|
117 | 121 | var eleUnion24 = unionTuple2[idx1]; // string | number | boolean |
118 | | ->eleUnion24 : Symbol(eleUnion24, Decl(indexerWithTuple.ts, 29, 3)) |
| 122 | +>eleUnion24 : Symbol(eleUnion24, Decl(indexerWithTuple.ts, 31, 3)) |
119 | 123 | >unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) |
120 | 124 | >idx1 : Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) |
121 | 125 |
|
122 | 126 | var eleUnion25 = unionTuple2["0"]; // boolean |
123 | | ->eleUnion25 : Symbol(eleUnion25, Decl(indexerWithTuple.ts, 30, 3)) |
| 127 | +>eleUnion25 : Symbol(eleUnion25, Decl(indexerWithTuple.ts, 32, 3)) |
124 | 128 | >unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) |
125 | 129 | >"0" : Symbol(0) |
126 | 130 |
|
127 | 131 | var eleUnion26 = unionTuple2["1"]; // string | number |
128 | | ->eleUnion26 : Symbol(eleUnion26, Decl(indexerWithTuple.ts, 31, 3)) |
| 132 | +>eleUnion26 : Symbol(eleUnion26, Decl(indexerWithTuple.ts, 33, 3)) |
129 | 133 | >unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) |
130 | 134 | >"1" : Symbol(1) |
131 | 135 |
|
| 136 | +type t1 = [string, number][0]; // string |
| 137 | +>t1 : Symbol(t1, Decl(indexerWithTuple.ts, 33, 34)) |
| 138 | + |
| 139 | +type t2 = [string, number][1]; // number |
| 140 | +>t2 : Symbol(t2, Decl(indexerWithTuple.ts, 35, 30)) |
| 141 | + |
| 142 | +type t3 = [string, number][-1]; // undefined |
| 143 | +>t3 : Symbol(t3, Decl(indexerWithTuple.ts, 36, 30)) |
| 144 | + |
0 commit comments