Say I have the type
type MyTypeArray = ['', 2, boolean]
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
type ExtractTail<T extends any[]> = T extends [infer _, ...infer Tail] ? Tail : never // [2, boolean] type MyTypeArray = ExtractTail<['', 2, boolean]> // 2 | boolean type Union = MyTypeArray[number]