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
А, точно, спасибо!
Обсуждают сегодня