반응형
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 |
Tags
- 타입스크립트
- socket
- dfs
- HTTP 완벽 가이드
- javascript
- Crawling
- 타입 챌린지
- Nestjs
- BFS
- 가천대
- 알고리즘
- 쉬운 문제
- 자바스크립트
- 수학
- type challenge
- 크롤링
- TCP
- ip
- dp
- 프로그래머스
- 그래프
- 레벨 1
- 백준
- 문자열
- Algorithm
- 소켓
- 프로그래머스 레벨 2
- Node.js
- typescript
- HTTP
Archives
- Today
- Total
kakasoo
startWith, endWith : ~로 시작하거나 끝나는 문자열 타입 본문
반응형
/**
* wrong case
*/
// type StartsWith<T extends string, U extends string> = `${U}${string}` extends `${T}` ? true : false;
type StartsWith<T extends string, U extends string> = T extends `${U}${string}` ? true : false;
처음에는 위에 주석처럼 풀고 동작하지 않는 것을 보았다.
U에 string을 추가한 것만큼이 결국 T가 아닌가 생각했지만, 'ab'와 string을 조합한 것이 'abc'보다 크다는 걸 뒤늦게 깨달은 것이다.
그래서 extends 문에서의 비교 순서를 거꾸로 하여 T가 U에 string 타입을 더해 더 긴 문자열을 만든 것에 포함된다는 걸로 바꾸었다.
type EndsWith<T extends string, U extends string> = T extends `${string}${U}` ? true : false;
반응형
'프로그래밍 > TypeScript' 카테고리의 다른 글
Shift, 튜플의 첫 요소를 제거한 타입 (0) | 2023.04.13 |
---|---|
IsUnion (0) | 2023.04.13 |
Math Types(2) - 타입으로 나누기, 나머지 연산 구현하기 (0) | 2023.04.09 |
Absoulte, 수의 절댓값 구하기 (0) | 2023.04.05 |
PercentageParser, PlusMinusParser (0) | 2023.04.03 |