🫧 문제 주어진 문자열 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 (개행), ..
타입스크립트로 에러 처리하기 } catch (err) { console.error(err.message); // Object is of type 'unknown' } 타입스크립트에서 error의 object가 unknown 타입으로 정의되어 에러가 발생하게 된다. Any 타입으로 강제 변경 catch (e: any) { return e.message; } as로 타입 단언 } catch (e) { return (e as Error).message; } instanceof로 타입 가드 type을 정하지 않고 any로도 캐스팅 하지 않는 가장 안전한 방법이다. } catch (e) { if (e instanceof Error) { return e.message; } }