타입 챌린지 5310 - Join

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

타입챌린지

목록 보기
73/131

문제 링크

문제

타입 버전의 Array.join을 구현하라. Join<T,U>는 배열 T를 받고, string이나 number인 U를 받는다. 그리고 U로 붙여진 배열 T를 반환한다

Implement the type version of Array.join, Join<T, U> takes an Array T, string or number U and returns the Array T with U stitching up.

내 풀이

type Join<T extends string[], U extends string | number | bigint =','> = 
    T extends [infer Start extends string,...infer Rest extends string[]]?
      Rest['length'] extends 0?
        Start
        :`${Start}${U}${Join<Rest,U>}`
      :''

Rest의 length가 0인 경우는 더이상 값이 없다는 의미이기 때문에 Start를 반환하고,
Rest가 length가 0이 아닌 경우에는 Rest에 값들이 들어있다는 의미이기 때문에 Start와 U, 그리고 나머지 값들을 재귀적으로 취한 것들을 붙여서 반환시켰다.

0개의 댓글