|
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