Last

挑战

在此挑战中建议使用 TypeScript 4.0

实现一个Last<T>泛型,它接受一个数组T并返回其最后一个元素的类型。

例如

type arr1 = ['a', 'b', 'c'];
type arr2 = [3, 2, 1];
 
type tail1 = Last<arr1>; // 应推导出 'c'
type tail2 = Last<arr2>; // 应推导出 1

解答

要得到最后一个元素的类型,我们可以使用条件类型和 infer。

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

值得一提的是,在 TypeScript 中,可以使用类型推断从元组中提取最后一个元素。

参考链接