한 입 크기로 잘라먹는 타입스크립트 - infer (Inference(추론))
1. infer
조건부 타입 내에서 특정 타입만 추론해올 수 있는 기능.
조건식을 참으로 만드는 특정 타입을 추론한다. infer 다음으로 오는 타입을 추론하지 못하는 경우에는 조건식이 거짓이 된다.
- chapter2.ts
/**
* infer
* innference -> 추론하다
*/
// 함수 타입 정의
type FuncA = () => string;
type FuncB = () => number;
// 조건부 타입 + infer 정의
type ReturnType<T> = T extends () => infer R ? R : never;
// 타입 추론 예제
type A = ReturnType<FuncA>; // string type
type B = ReturnType<FuncB>; // number type
type C = ReturnType<number>; // never type - R 타입 추론 불가
/**
* 쉬운 예제
*/
// 조건
// 1. T 는 프로미스 타입이어야 한다.
// 2. 프로미스 타입의 결과값 타입을 반환해야 한다.
type PromiseUnpack<T> = T extends Promise<infer R> ? R : never;
// 타입 기대
type PromiseA = PromiseUnpack<Promise<number>>; // number 타입 기대
type PromiseB = PromiseUnpack<Promise<string>>; // string 타입 기대
한 입 크기로 잘라먹는 타입스크립트(TypeScript) 강의 | 이정환 Winterlood - 인프런
이정환 Winterlood | 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻♀️로 만들어드립니다., 프론
www.inflearn.com
'강의 실습 > 한 입 크기로 잘라먹는 타입스크립트(TypeScript)' 카테고리의 다른 글
맵드 타입 기반의 유틸리티 타입 1 - Partial, Required, Readonly (0) | 2024.12.23 |
---|---|
유틸리티 타입 소개 (0) | 2024.12.22 |
분산적인 조건부 타입 (0) | 2024.12.17 |
조건부 타입 소개 (0) | 2024.12.16 |
템플릿 리터럴 타입 (0) | 2024.12.15 |
댓글