实现
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 中第一个元素的类型,而不必显式地指定它。