타입 챌린지 531 - String to Union

소파의 벨로그·2025년 3월 25일

타입챌린지

목록 보기
34/131

문제 링크

문제

문자열 인수를 입력받는 String to Union 유형을 구현하세요. 출력은 입력 문자열의 Union type이어야 합니다.

내 풀이

type StringToUnion<T extends string> =
  T extends `${infer Start extends string}${infer Last}`?
    Start|StringToUnion<Last>
    :never

다른 사람의 풀이

type StringToUnion<T extends string, R extends string[] = []>
  = T extends `${infer First}${infer Rest}`
      ? StringToUnion<Rest, [...R, First]>
      : R[number]

튜플타입으로 변환하는 풀이이다
그러나 이 방식은 사용처에서 쓸데없는 제네릭이 노출되므로 별로 선호하는 방식은 아니다.

참고자료

https://github.com/type-challenges/type-challenges/issues/1304

0개의 댓글