Open yunliuyan opened 11 months ago
获取最后一位数的index,如果获取最后的index,通过infer
type arr1 = ['a', 'b', 'c']
type arr2 = [3, 2, 1]
type LastIndex<T extends readonly any[]> = T extends [infer U, ...infer args] ? args['length'] : never
type Last<T extends readonly any[]> = T[LastIndex<T>]
type tail1 = Last<arr1> // expected to be 'c'
type tail2 = Last<arr2> // expected to be 1
type Last<T extends unknown[]> = T extends [...unknown[], infer P] ? P : never;
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
type Last<T extends unknown[]> = T extends [...infer U, infer K] ? K : never;
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
type LastIndex<T extends readonly any[]> = T extends [infer U, ...infer args] ? args['length'] : never
type MyEasyLast<T extends any[]> = T[LastIndex<T>];
const easyLastFun = () => 1;
type easyLastArr1 = ["2", 3, true, "a"];
type easyLastArr2 = ["2", 3, true, 2];
type easyLastArr3 = ["2", 3, true, false];
type easyLastArr4 = ["2", 3, true, true];
type easyLastArr5 = ["2", 3, true, typeof easyLastFun];
type easyLastTest1 = MyEasyLast<easyLastArr1>; // expected to be 'a'
type easyLastTest2 = MyEasyLast<easyLastArr2>; // expected to be 2
type easyLastTest3 = MyEasyLast<easyLastArr3>; // expected to be false
type easyLastTest4 = MyEasyLast<easyLastArr4>; // expected to be true
type easyLastTest5 = MyEasyLast<easyLastArr5>; // expected to be () => number
type easyLastTest7 = MyEasyLast<["2", 3, true, "a"]>; // expected to be 'a'
type easyLastTest8 = MyEasyLast<["2", 3, true, () => number]>; // expected to be () => number
// 实现一个通用Last<T>,它接受一个数组T并返回其最后一个元素的类型。
type Last<T> = T extends [...infer arr, infer lastItem] ? lastItem : never;
type arr110 = ['a', 'b', 'c']
type arr210 = [3, 2, 1]
type tail1 = Last<arr110> // expected to be 'c'
type tail2 = Last<arr210> // expected to be 1
最后一个元素
![#array](https://img.shields.io/badge/-%23array-999)
实现一个通用
Last<T>
,它接受一个数组T
并返回其最后一个元素的类型。例如
测试案例
相关挑战