14 - First of Array

Author: VarunMendreCreated Sep 4, 2026Updated Sep 4, 2026
Labelsansweren14
// 1. If type T is assignable to an empty array, then it is considered an empty array.
type First<T extends unknown[]> = T extends [] ? never : T[0];

// 2. Since T is an array, we can assess its .length property. If its length is 0, then it is an empty array.
type First<T extends any[]> = T['length'] extends 0 ? never : T[0];

// 3. If T's indexed value of type number is assignable to never, it means the array is empty.
type First<T extends any[]> = T[number] extends never ? never : T[0];

Source: type-challenges/type-challenges