반응형
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
- BFS
- Crawling
- Algorithm
- 가천대
- 문자열
- 백준
- javascript
- 레벨 1
- 자바스크립트
- type challenge
- dfs
- 프로그래머스
- socket
- 소켓
- 쉬운 문제
- 타입 챌린지
- 프로그래머스 레벨 2
- dp
- Nestjs
- 수학
- 타입스크립트
- ip
- 그래프
- TCP
- HTTP 완벽 가이드
- Node.js
- HTTP
- 크롤링
- 알고리즘
- typescript
Archives
- Today
- Total
kakasoo
함수의 리턴 타입 알아내기 본문
반응형
type MyReturnType<T> = T extends (...args:any[]) => infer R ? R : never;
어떤 타입 T를 정의할 때, 그 T에 대한 정의는 반드시 제너릭 쪽에 되어야 할 필요가 없다.
제너릭 내부에서 extends를 사용하는 것은 타입제한을 설정한다고 하며, 제너릭 타입 제한, 제너릭 제약 조건이라고 부른다.
반대로 외부에서 extends를 사용하는 것은 인터페이스나 클래스의 타입 정의에서 상위 타입을 지정하는 것으로, 상속, 확장이라 한다.
이 문제는, infer R을 써야 하기 때문에 제너릭이 아니라 상속을 통해 해결해야 했다.
infer 키워드는 제너릭 타입 매개변수의 타입 추론을 위해 사용하기 때문에, 제너릭 내부에서는 사용할 수 없다.
반응형
'프로그래밍 > TypeScript' 카테고리의 다른 글
DeepReadonly (0) | 2023.03.19 |
---|---|
TypeScript 코드는 어떻게 변환되는가? (0) | 2023.03.19 |
Equal type 설명하기 (1) | 2023.03.05 |
MyAwaited, 프로미스 내부의 타입을 추론해서 꺼내기 (0) | 2023.02.25 |
Chainable, 연쇄적인 호출이 가능한 타입 (0) | 2023.02.21 |