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?
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]
type LastValueOfTuple<T extends any[] | readonly any[]> = T extends [...infer Start, infer Last] ? Last : never; Not the question that was asked, but this is the article that appeared when I was searching for this answer.