Say I have the type
JavaScript
x
2
1
type MyTypeArray = ['', 2, boolean]
2
How could I extract the type 2 | boolean
when the array could be of an unknown length?
Advertisement
Answer
You can infer all elements but first. Use spread tuple
operator: ...
, just like in plain javascript
JavaScript
1
9
1
type ExtractTail<T extends any[]> = T extends [infer _, infer Tail] ? Tail : never
2
3
// [2, boolean]
4
type MyTypeArray = ExtractTail<['', 2, boolean]>
5
6
// 2 | boolean
7
type Union = MyTypeArray[number]
8
9