@@ -18,15 +18,15 @@ f1(1, 2, 3, 4, ...[5, 6]);
18
18
>3 : 3
19
19
>4 : 4
20
20
>...[5, 6] : number
21
- >[5, 6] : readonly [number, number]
21
+ >[5, 6] : [number, number]
22
22
>5 : 5
23
23
>6 : 6
24
24
25
25
f1(...[1], 2, 3, 4, 5, 6);
26
26
>f1(...[1], 2, 3, 4, 5, 6) : void
27
27
>f1 : (a: number, b: number, c: number, d: number, e: number, f: number) => void
28
28
>...[1] : number
29
- >[1] : readonly [number]
29
+ >[1] : [number]
30
30
>1 : 1
31
31
>2 : 2
32
32
>3 : 3
@@ -40,7 +40,7 @@ f1(1, 2, ...[3, 4], 5, 6);
40
40
>1 : 1
41
41
>2 : 2
42
42
>...[3, 4] : number
43
- >[3, 4] : readonly [number, number]
43
+ >[3, 4] : [number, number]
44
44
>3 : 3
45
45
>4 : 4
46
46
>5 : 5
@@ -52,27 +52,50 @@ f1(1, 2, ...[3], 4, ...[5, 6]);
52
52
>1 : 1
53
53
>2 : 2
54
54
>...[3] : number
55
- >[3] : readonly [number]
55
+ >[3] : [number]
56
56
>3 : 3
57
57
>4 : 4
58
58
>...[5, 6] : number
59
- >[5, 6] : readonly [number, number]
59
+ >[5, 6] : [number, number]
60
60
>5 : 5
61
61
>6 : 6
62
62
63
63
f1(...[1, 2], ...[3, 4], ...[5, 6]);
64
64
>f1(...[1, 2], ...[3, 4], ...[5, 6]) : void
65
65
>f1 : (a: number, b: number, c: number, d: number, e: number, f: number) => void
66
66
>...[1, 2] : number
67
- >[1, 2] : readonly [number, number]
67
+ >[1, 2] : [number, number]
68
68
>1 : 1
69
69
>2 : 2
70
70
>...[3, 4] : number
71
- >[3, 4] : readonly [number, number]
71
+ >[3, 4] : [number, number]
72
72
>3 : 3
73
73
>4 : 4
74
74
>...[5, 6] : number
75
- >[5, 6] : readonly [number, number]
75
+ >[5, 6] : [number, number]
76
+ >5 : 5
77
+ >6 : 6
78
+
79
+ f1(...(([1, 2])), ...(((([3, 4])))), ...([5, 6]));
80
+ >f1(...(([1, 2])), ...(((([3, 4])))), ...([5, 6])) : void
81
+ >f1 : (a: number, b: number, c: number, d: number, e: number, f: number) => void
82
+ >...(([1, 2])) : number
83
+ >(([1, 2])) : [number, number]
84
+ >([1, 2]) : [number, number]
85
+ >[1, 2] : [number, number]
86
+ >1 : 1
87
+ >2 : 2
88
+ >...(((([3, 4])))) : number
89
+ >(((([3, 4])))) : [number, number]
90
+ >((([3, 4]))) : [number, number]
91
+ >(([3, 4])) : [number, number]
92
+ >([3, 4]) : [number, number]
93
+ >[3, 4] : [number, number]
94
+ >3 : 3
95
+ >4 : 4
96
+ >...([5, 6]) : number
97
+ >([5, 6]) : [number, number]
98
+ >[5, 6] : [number, number]
76
99
>5 : 5
77
100
>6 : 6
78
101
@@ -85,7 +108,7 @@ const x21 = f2(...[1, 'foo'])
85
108
>f2(...[1, 'foo']) : [number, string]
86
109
>f2 : <T extends unknown[]>(...args: T) => T
87
110
>...[1, 'foo'] : string | number
88
- >[1, 'foo'] : readonly [number, string]
111
+ >[1, 'foo'] : [number, string]
89
112
>1 : 1
90
113
>'foo' : "foo"
91
114
@@ -95,7 +118,28 @@ const x22 = f2(true, ...[1, 'foo'])
95
118
>f2 : <T extends unknown[]>(...args: T) => T
96
119
>true : true
97
120
>...[1, 'foo'] : string | number
98
- >[1, 'foo'] : readonly [number, string]
121
+ >[1, 'foo'] : [number, string]
122
+ >1 : 1
123
+ >'foo' : "foo"
124
+
125
+ const x23 = f2(...([1, 'foo']))
126
+ >x23 : [number, string]
127
+ >f2(...([1, 'foo'])) : [number, string]
128
+ >f2 : <T extends unknown[]>(...args: T) => T
129
+ >...([1, 'foo']) : string | number
130
+ >([1, 'foo']) : [number, string]
131
+ >[1, 'foo'] : [number, string]
132
+ >1 : 1
133
+ >'foo' : "foo"
134
+
135
+ const x24 = f2(true, ...([1, 'foo']))
136
+ >x24 : [boolean, number, string]
137
+ >f2(true, ...([1, 'foo'])) : [boolean, number, string]
138
+ >f2 : <T extends unknown[]>(...args: T) => T
139
+ >true : true
140
+ >...([1, 'foo']) : string | number
141
+ >([1, 'foo']) : [number, string]
142
+ >[1, 'foo'] : [number, string]
99
143
>1 : 1
100
144
>'foo' : "foo"
101
145
@@ -108,7 +152,7 @@ const x31 = f3(...[1, 'foo'])
108
152
>f3(...[1, 'foo']) : [number, string]
109
153
>f3 : <T extends readonly unknown[]>(...args: T) => T
110
154
>...[1, 'foo'] : string | number
111
- >[1, 'foo'] : readonly [number, string]
155
+ >[1, 'foo'] : [number, string]
112
156
>1 : 1
113
157
>'foo' : "foo"
114
158
@@ -118,7 +162,72 @@ const x32 = f3(true, ...[1, 'foo'])
118
162
>f3 : <T extends readonly unknown[]>(...args: T) => T
119
163
>true : true
120
164
>...[1, 'foo'] : string | number
121
- >[1, 'foo'] : readonly [number, string]
165
+ >[1, 'foo'] : [number, string]
166
+ >1 : 1
167
+ >'foo' : "foo"
168
+
169
+ const x33 = f3(...([1, 'foo']))
170
+ >x33 : [number, string]
171
+ >f3(...([1, 'foo'])) : [number, string]
172
+ >f3 : <T extends readonly unknown[]>(...args: T) => T
173
+ >...([1, 'foo']) : string | number
174
+ >([1, 'foo']) : [number, string]
175
+ >[1, 'foo'] : [number, string]
176
+ >1 : 1
177
+ >'foo' : "foo"
178
+
179
+ const x34 = f3(true, ...([1, 'foo']))
180
+ >x34 : [boolean, number, string]
181
+ >f3(true, ...([1, 'foo'])) : [boolean, number, string]
182
+ >f3 : <T extends readonly unknown[]>(...args: T) => T
183
+ >true : true
184
+ >...([1, 'foo']) : string | number
185
+ >([1, 'foo']) : [number, string]
186
+ >[1, 'foo'] : [number, string]
187
+ >1 : 1
188
+ >'foo' : "foo"
189
+
190
+ declare function f4<const T extends readonly unknown[]>(...args: T): T;
191
+ >f4 : <const T extends readonly unknown[]>(...args: T) => T
192
+ >args : T
193
+
194
+ const x41 = f4(...[1, 'foo'])
195
+ >x41 : readonly [number, string]
196
+ >f4(...[1, 'foo']) : readonly [number, string]
197
+ >f4 : <const T extends readonly unknown[]>(...args: T) => T
198
+ >...[1, 'foo'] : string | number
199
+ >[1, 'foo'] : [number, string]
200
+ >1 : 1
201
+ >'foo' : "foo"
202
+
203
+ const x42 = f4(true, ...[1, 'foo'])
204
+ >x42 : readonly [true, number, string]
205
+ >f4(true, ...[1, 'foo']) : readonly [true, number, string]
206
+ >f4 : <const T extends readonly unknown[]>(...args: T) => T
207
+ >true : true
208
+ >...[1, 'foo'] : string | number
209
+ >[1, 'foo'] : [number, string]
210
+ >1 : 1
211
+ >'foo' : "foo"
212
+
213
+ const x43 = f4(...([1, 'foo']))
214
+ >x43 : readonly [number, string]
215
+ >f4(...([1, 'foo'])) : readonly [number, string]
216
+ >f4 : <const T extends readonly unknown[]>(...args: T) => T
217
+ >...([1, 'foo']) : string | number
218
+ >([1, 'foo']) : [number, string]
219
+ >[1, 'foo'] : [number, string]
220
+ >1 : 1
221
+ >'foo' : "foo"
222
+
223
+ const x44 = f4(true, ...([1, 'foo']))
224
+ >x44 : readonly [true, number, string]
225
+ >f4(true, ...([1, 'foo'])) : readonly [true, number, string]
226
+ >f4 : <const T extends readonly unknown[]>(...args: T) => T
227
+ >true : true
228
+ >...([1, 'foo']) : string | number
229
+ >([1, 'foo']) : [number, string]
230
+ >[1, 'foo'] : [number, string]
122
231
>1 : 1
123
232
>'foo' : "foo"
124
233
@@ -137,7 +246,7 @@ action.run(...[100, 'foo']) // error
137
246
>action : IAction
138
247
>run : (event?: unknown) => unknown
139
248
>...[100, 'foo'] : string | number
140
- >[100, 'foo'] : readonly [number, string]
249
+ >[100, 'foo'] : [number, string]
141
250
>100 : 100
142
251
>'foo' : "foo"
143
252
0 commit comments