프로그래밍/TypeScript
타입 레벨에서 문자열 Join 구현하기 2
카카수(kakasoo)
2023. 8. 11. 20:28
반응형
https://kscodebase.tistory.com/682
Join의 다른 구현 방법
type Join<
Target extends string[],
Separator extends string = ""
> = Target extends [infer First, ...infer Rest]
? First extends string
? Rest extends string[]
? Rest extends []
? First
: `${First}${Separator}${Join<Rest, Separator>}`
: never
: never
: "";
Target으로 문자열 배열을 받아 Separator를 이용해 각 문자열들을 합치는 타입이다.
Target은 반드시 First와 나머지 인자 Rest로 이루어져 있다고 가정할 수 있으며,
Rest가 없는 경우, 즉 더 이번 First가 마지막인 경우에는 Separator 없이 단순히 First를 반환하고,
그렇지 않은 경우에는 `${First}${Separator}${Join<Rest, Separator>` 타입을 리턴한다.
반응형