Skip to main content

最后一个元素

题目

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

例如

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

type tail1 = Last<arr1> // expected to be 'c'
type tail2 = Last<arr2> // expected to be 1

题目来源:https://tsch.js.org/15/zh-CN

解答

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

判断T是否是空数组 T extends [...infer F, infer L]
如果不是的话,则infer L代表最后一个元素。