挑战
在此挑战中建议使用 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 中,可以使用类型推断从元组中提取最后一个元素。