首页 > 解决方案 > 使用打字稿从数组中提取所有元素类型,除了第一个

问题描述

说我有类型

type MyTypeArray = ['', 2, boolean]

2 | boolean当数组的长度可能未知时,如何提取类型?

标签: javascriptarraystypescripttuples

解决方案


您可以推断除第一个之外的所有元素。使用spread tupleoperator: ...,就像在普通的 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]


推荐阅读