반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 프로그래머스 레벨 2
- Nestjs
- dp
- 알고리즘
- ip
- 타입스크립트
- 소켓
- 타입 챌린지
- typescript
- 가천대
- HTTP 완벽 가이드
- Node.js
- HTTP
- TCP
- 수학
- 문자열
- 크롤링
- javascript
- type challenge
- 백준
- 그래프
- dfs
- 프로그래머스
- BFS
- Crawling
- 자바스크립트
- 쉬운 문제
- Algorithm
- 레벨 1
- socket
Archives
- Today
- Total
kakasoo
Replace, 처음으로 만난 단어를 대체하여 새 문자열 만들기 본문
반응형
// type Replace<S extends string, From extends string, To extends string> = S extends `${infer R}${From}${infer T}` ? `${R}${To}${T}` : S
type Replace<S extends string, From extends string, To extends string> = From extends '' ? S : S extends `${infer R}${From}${infer T}` ? `${R}${To}${T}` : S;
처음에 정의한 타입으로는 From이 빈 문자일 경우에 제대로 동작하지 않았다.
그래서 Replace에는 From이 빈 문자일 경우에는 그대로 S를 리턴하도록 하는 구문을 추가했다.
이 타입은 `${infer R}${From}${infer T}`로 구성된 타입에서 From을 To로 바꾸는 타입이다.
굳이 T를 붙인 이유는, 이 타입의 초기 문자열 S가 'foobarbar'와 같이 동일한 단어가 2번 반복될 경우 T가 없으면 마지막 단어를 바꾸기 때문이다.
'foobarbar'의 'bar'를 'foo'로 바꾼다면 'foofoobar'가 나오는 것이 옳다.
반응형
'프로그래밍 > TypeScript' 카테고리의 다른 글
Capitalize (0) | 2023.03.23 |
---|---|
LookUp : 유니온 타입에서 'type' 프로퍼티가 일치하는 타입 찾기 (0) | 2023.03.23 |
PromiseAll type (0) | 2023.03.21 |
Trim, 글 양쪽의 빈 문자열들을 제거한 타입 (0) | 2023.03.21 |
TrimRight (0) | 2023.03.21 |