문자열을 치환하는 메서드인 replace()
를 타입스크립트로 구현하는 문제다.
풀다가 타입스크립트에서도 템플릿 리터럴이 적용된다는 사실을 알게되었다.
type Replace<S extends string, From extends string, To extends string> = From extends ''
? S
: S extends `${infer left}${From}${infer right}`
? `${left}${To}${right}`
: S
${infer V}${From}${infer R}
를 이용하여 left,right부분에 있는 string을 캡쳐해둔다.To
에 들어온 타입으로 바꿔준다.끝!
오오.. 고난도 문제들을 풀고 계시는군요..!! 대단하십니다 ㅎㅎ (꾸준함이 더 대단하십니다..!! ㅎㅎ)
저도 타입스크립트가 템플릿 리터럴이 된다는 건 처음 안 사실이네요 👍