Skip to content
Advertisement

Use typescript to extract all element type(s) from array except first

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]

Advertisement