cosmos
Cosmos
search
blog Hello comment
{ "articleTitle": "实现First", "date": "2022-10-22 21:18:15", "tags": [ "typescript", "First" ], "categories": "ts", "timestamp": 1666473495000, "readingTime": 0, "outline": "ts类型体操,实现First过程中的知识点" }
readingTime: <1min

First

实现一个通用First<T>,它接受一个数组T并返回它的第一个元素的类型。

例如:

type arr1 = ['a', 'b', 'c']
type arr2 = [3, 2, 1]

type head1 = First<arr1> // expected to be 'a'
type head2 = First<arr2> // expected to be 3

infer

TODO: infer相关

infer关键字用于推断泛型类型的类型参数,可以用于条件类型中。

answer

type First<T extends any[]> = T extends [infer R, ...any[]] ? R : never
Edit on Github