✍ 공부/TypeScript

[type-challenges] String to Union

Po_tta_tt0 2023. 6. 27. 08:10
반응형

문제

String을 Union type으로 변환하시오.
output은 input으로 받은 string letters의 유니온 타입이어야 합니다

설명


/* _____________ Your Code Here _____________ */

type StringToUnion<T extends string,P extends any[] = [] > = T extends `${infer A}${infer B}` ? StringToUnion<B,[...P,A]> :P[number] 

/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'

type t = StringToUnion<'hello'>

type cases = [
  Expect<Equal<StringToUnion<''>, never>>,
  Expect<Equal<StringToUnion<'t'>, 't'>>,
  Expect<Equal<StringToUnion<'hello'>, 'h' | 'e' | 'l' | 'l' | 'o'>>,
  Expect<Equal<StringToUnion<'coronavirus'>, 'c' | 'o' | 'r' | 'o' | 'n' | 'a' | 'v' | 'i' | 'r' | 'u' | 's'>>,
]

우와~~ 제가 해냈어요!!
접근 방식은 다음과 같습니다

  1. union으로 만드는 방법은 배열을 도는 방법이라고 생각했어요
  2. 따라서 string을 배열로 만들고, 그 배열[number]을 통해 union으로 만들고자 했습니다
반응형