TypeScript 类型体操 —— 数组第一个元素

1,156 阅读1分钟

题目地址

实现

type First<T extends any[]> = T extends [infer U, ...any[]] ? U : never;

const array = [1, 2, 3];

const firstElement: First<typeof array> = 1;

这里,使用了 TypeScript 的 infer 关键字来获取数组的第一个元素的类型。然后,将其作为 First 的结果返回。

infer

infer 关键字是 TypeScript 中的一个推导类型的关键字。它允许在泛型中推导出其他类型,而不必显式地指定类型。

例如,在刚刚给出的 First<T> 例子中,使用了 infer 关键字从数组 T 的第一个元素推导出了该元素的类型。这样就可以很方便地获取数组 T 中第一个元素的类型,而不必显式地指定它。