Skip to main content

First of Array [array]

实现一个通用 First<T> 它接受一个数组T并返回它的第一个元素的类型。

// 假如你有一下这两个数组,你怎样支持他们的类型

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

type head1 = First<arr1> // expected to be 'a'
type head2 = First<arr2> // expected to be 3

/**
* 思路:
* 利用 extends 的特性来做检查 如果是空数组或者长度为0就返回不存在的类型,否则就返回第一位。
*/

type First<T extends any[]> = T["length"] extends 0 ? never : T[0];
type First<T extends any[]> = T extends [] ? never : T[0]