arr2 = [3, 2, 1]
type First<T extends any[]> = T extends [] ? never : T[0];
type head1 = First<arr1> // expected to be 'a'
type head2 = First<arr2> // expected to be 3
Не понимаю, почему написано именно так. Почему нельзя просто написать
type First<T extends any[]> = T[0];
Если пустой массив, значит нет первого элемента, поэтому тип never
А, точно, спасибо!
Обсуждают сегодня