Используйте typescript для извлечения всех типов элементов из массива, кроме первого

#javascript #arrays #typescript #tuples

Вопрос:

Скажи, что у меня есть такой тип

 type MyTypeArray = ['', 2, boolean]
 

Как я мог извлечь тип 2 | boolean , когда массив может быть неизвестной длины?

Ответ №1:

Вы можете вывести все элементы, но сначала. Используйте spread tuple оператор: ... , как и в обычном 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]

 

Комментарии:

1. @johann1301s сделал обновление.