Skip to content

最后一个元素

题目

在此挑战中建议使用TypeScript 4.0

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

例如

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

type tail1 = Last<arr1> // 应推导出 'c'
type tail2 = Last<arr2> // 应推导出 1

解答

通过 解构infer 来提取数组最后一项:[...infer _, infer R]

若有则返回最后项的推导类型 R,反之则返回 never

ts
type Last<T extends unknown[]> = T extends [...infer _, infer R] ? R : never

Released under the MIT License.