반응형
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 | 31 |
Tags
- BFS
- 알고리즘
- 크롤링
- 소켓
- Crawling
- 타입 챌린지
- dfs
- 자바스크립트
- 가천대
- HTTP
- Node.js
- TCP
- Algorithm
- socket
- 레벨 1
- 백준
- 프로그래머스
- typescript
- 타입스크립트
- javascript
- 문자열
- 프로그래머스 레벨 2
- ip
- dp
- HTTP 완벽 가이드
- 그래프
- Nestjs
- 수학
- 쉬운 문제
- type challenge
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 |