使用TypeScript从数组中提取除第一个元素外的所有元素类型

3

假设我有这个类型

type MyTypeArray = ['', 2, boolean]

当数组长度未知时,我该如何提取类型为2 | boolean的元素?

1个回答

5
你可以推断除第一个元素以外的所有元素。使用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]


@johann1301s 进行了更新。 - captain-yossarian from Ukraine
1
你也可以使用类似的过程来提取元组中的最后一个元素:type LastValueOfTuple<T extends any[] | readonly any[]> = T extends [...infer Start, infer Last] ? Last : never;虽然这不是被问到的问题,但这是我在搜索答案时找到的文章。 - Austin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接