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

joh*_*01s 3 javascript arrays tuples typescript

说我有类型

type MyTypeArray = ['', 2, boolean]
Run Code Online (Sandbox Code Playgroud)

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

cap*_*ian 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]

Run Code Online (Sandbox Code Playgroud)