
제네릭으로 원본문자열 S와 교체당하는 문자 From, 교체 하려는 문자 To를 받아서 문자열 S에 존재하는 모든 From을 To로 변환한다.
저번에 Replace메서드를 구현해봐서 그런지 어렵지 않았다. 재귀를 응용하는 게 핵심이다.
type ReplaceAll<S extends string, From extends string, To extends string> = From extends ''
? S : S extends `${infer left}${From}${infer right}`
? `${ReplaceAll<left,From,To>}${To}${ReplaceAll<right,From,To>}` : S
여담이지만 분할정복은 개발자로서 필요한 덕목이 아닐까 싶다.
어떤 알고리즘 or 문제든 작은 단위로 쪼개서 해결하다보면 어느새 문제는 해결되어있으니...
작게 작게 쪼개서 생각하는 습관을 조금씩 들여보자