@@ -190,3 +190,43 @@ function makeSomeOperations(form: FormGroup, descriptor: DateIntervalDescriptor)
190
190
// ...
191
191
}
192
192
```
193
+
194
+ - ` Tuple `
195
+
196
+ ``` ts
197
+ type NumberCouple = Tuple <number , 2 >; // [number, number]
198
+ type Number4 = Tuple <number , 4 >; // [number, number, number, number]
199
+ type BracedString = Tuple <string >; // [string]
200
+ type NumberCouple = Tuple <string , 0 >; // []
201
+ ```
202
+
203
+ - ` InfiniteTuple `
204
+
205
+ ``` ts
206
+ type CoupleAndMaybeSomeNumbers = InfiniteTuple <number , 2 >; // [number, number, ...number]
207
+ type AtLeast4Numbers = InfiniteTuple <number , 4 >; // [number, number, number, number, ...number]
208
+ type AtLeastOneLine = InfiniteTuple <string >; // [string, ...string]
209
+ type SomeLines = InfiniteTuple <string , 0 >; // string[]
210
+ ```
211
+
212
+ - ` LastOfTuple `
213
+
214
+ ``` ts
215
+ type Number = LastOfTuple <[number ]>; // number
216
+ type MaybeString = LastOfTuple <string []>; // string | undefined
217
+ type Boolean = LastOfTuple <[string , boolean ]>; // boolean
218
+ type StringOrNumber = LastOfTuple <[string , ... number []]>; // string | number
219
+ type Nothing = LastOfTuple <[]>; // undefined
220
+ ```
221
+
222
+ - ` TupleItem `
223
+
224
+ ``` ts
225
+ type Number = TupleItem <[number ], 0 >; // number
226
+ type MaybeString = TupleItem <string [], 1 >; // string | undefined
227
+ type Boolean = TupleItem <[string , boolean ], 1 >; // boolean
228
+ type String = TupleItem <[string , ... number []], 0 >; // string
229
+ type MaybeNumber = TupleItem <[string , ... number []], 3 >; // number | undefined
230
+ type Nothing = TupleItem <[], 0 >; // undefined
231
+ type NothingToo = TupleItem <[], 3 >; // undefined
232
+ ```
0 commit comments