🫧 문제 주어진 문자열 S에서 부분 문자열 From을 찾아 모두 To로 교체하는 제네릭 ReplaceAll을 구현하세요. type replaced = ReplaceAll // expected to be 'types' 🛠️ 테스트 케이스 type cases = [ Expect, Expect, Expect, Expect, Expect, Expect, Expect, Expect, Expect, ] 🎱 정답 type ReplaceAll = From extends '' ? S : S extends `${infer A}${From}${infer B}` ? `${A}${To}${ReplaceAll}` : S 💭 해설 1. 마지막 테스트 케이스로 인해 From이 ' ' 형태인지 확인 한다. 맞다면 S를 그대로 반환한다..
🫧 문제 문자열 S에서 From를 찾아 한 번만 To로 교체하는 Replace를 구현하세요. type replaced = Replace // expected to be 'types are awesome!' 🛠️ 테스트 케이스 type cases = [ Expect, Expect, Expect, Expect, Expect, Expect, ] 🎱 정답 type Replace = From extends '' ? S : S extends `${infer A}${From}${infer B}` ? `${A}${To}${B}` : S; 💭 해설 1. 테스트 케이스에 From 이 ' '인 경우가 있어 먼저 From 이 ' '인지 확인을 하고 맞다면 S를 반환합니다. 2. 아닌 경우에는 S가 ${infer A}${Fro..
🫧 문제 정확한 문자열 타입이고 양쪽 끝의 공백이 제거된 새 문자열을 반환하는 Trim를 구현하십시오. type trimmed = Trim // 기대되는 결과는 'Hello World'입니다. ☀️ 테스트 케이스 type cases = [ Expect, Expect, Expect, Expect, Expect, Expect, Expect, Expect, ] 🎱 정답 type Space = "\n" | '\t' | ' ' type Trim = S extends `${Space}${infer T}` | `${infer T}${Space}`? Trim : S 💭 해설 type Space = "\n" | '\t' | ' ' Space라는 유니온 타입을 먼저 정의해준다. 해당 타입은 공백 문자들인 \n (개행), ..