타입 챌린지 545 - printf

소파의 벨로그·2025년 7월 8일

타입챌린지

목록 보기
130/131

문제 링크

문제

타입 Format<T extends string>을 구현하라.

Implement Format<T extends string> generic.

내 풀이

interface FormatInformation{
  s:string
  d:number
}
type Format<T extends string> = T extends `${infer _}%${infer K}${infer Rest}`?
    K extends keyof FormatInformation?(arg:FormatInformation[K])=>Format<Rest>
    :Format<Rest>
  :string

우선 확장이 용이하도록 FormatInformation을 추가했다.

string에 %이 들어가면 그 다음 글자를 확인한다.
그 다음 글자가 FormatInformation의 key에 속하면 인자를 해당 문자에 맞는 타입으로 하고, 반환값을 나머지 값을 Format한 함수로 하는 것으로 구한다.

그렇지 않다면, 그냥 string을 반환한다.

0개의 댓글