아 ~ 어디 "1"부터 원하는 숫자를 다 유니온으로 만들어주는 타입 어디없나~?
type NumberToString<
N extends number,
R extends unknown[] = [],
> = R['length'] extends N
? never
: `${R['length']}` | NumberToString<N, [unknown, ...R]>;
type ExcludeNumbers<
ExcludeFrom extends string,
End extends string,
> = End extends ExcludeFrom ? never : End;
export type NumberString<
Start extends number = 0,
End extends number = 0,
> = ExcludeNumbers<NumberToString<Start>, NumberToString<End>>;
이게 되네..
타입의 세계는 무궁무진하네요..
다만 타입스크립트의 재귀호출제한으로 인해 48이상의 값을 넣으면 에러가 발생합니다.
그래도.. 간단한 값을 만들때는 편하게 쓰실 수 있을거에요..
반응형
'typescript' 카테고리의 다른 글
storybook argTypes 추론이 안되는 문제 (0) | 2024.04.09 |
---|---|
ts-pattern을 사용하여 선언적으로 분기 관리하기 (1) | 2023.11.26 |
typescript any 와 unknown의 차이 (0) | 2023.08.13 |
왜 타입스크립트는 DOM 요소를 확신하지 못할까? (0) | 2023.06.02 |
useState가 반환하는 setState의 타입은 어떻게 설정할까? (0) | 2023.05.14 |