Skip to main content

EnumerateNumbers

0부터 N-1까지의 숫자 유니언 타입을 생성합니다. N이 number타입이 아닐경우 never를 반환합니다.

Interface

typescript
type _EnumerateNumbers<
N extends number,
Acc extends number[] = []
> = Acc['length'] extends N
? Acc[number]
: _EnumerateNumbers<N, [...Acc, Acc['length']]>;

type EnumerateNumbers<N> = N extends number
? _EnumerateNumbers<N>
: never;

Usage

typescript
type zeroToFive = EnumerateNumbers<6>; // 0 | 1 | 2 | 3 | 4 | 5

type otherTypeEnumerate = EnumerateNumbers<'6'>; // never