Ts challenege(5) - Trim

김영현·2024년 5월 20일
0

ts challenge

목록 보기
5/6

Trim

단어의 좌,우측 공백을 모두 제거하는 메서드다.

풀이

예시에 주어진 공백의 타입은 총 3가지다.

따라서 3가지의 공백을 먼저 선언한다.

type Space = ' ' | '\t' | '\n';

이후 infer키워드로 단어를 캡쳐링한 뒤 재귀적으로 타입을 먹여준다.

type Trim<S extends string> = S extends `${Space}${infer word}` | `${infer word}${Space}` ? Trim<word> : S

좌, 우측에 Space타입이 존재한다면 다시 Trim을 재귀적으로 호출, 아니라면 그대로 문자열을 반환한다.


느낀점

타입스크립트에서 재귀를 활용할 줄은 꿈에도 몰랐다. 또한 infer키워드는 자주활용되니 잘 알아두자.
다음에는 타입스크립트에서 타입을 어떻게 추리하는지 등 타입스크립트의 동작원리에 대해 파헤쳐보자!

profile
모르는 것을 모른다고 하기

0개의 댓글