한 입 크기로 잘라먹는 타입스크립트
Search

infer

📄
Table Of Contents
 
chpater2.ts 에서 실습과 함께 진행합니다.

infer

infer는 조건부 타입 내에서 특정 타입을 추론하는 문법입니다.
infer는 다음과 같이 특정 함수 타입에서 반환값의 타입만 추출하는 특수한 조건부 타입인 ReturnType을 만들 때 이용할 수 있습니다.
코드를 불러오는 중 입니다 ...
조건식 T extends () => infer R에서 infer R은 이 조건식을 참이 되도록 만들 수 있는 최적의 R 타입을 추론하라는 의미입니다.
따라서 A 타입을 계산할 때의 위 코드의 흐름은 다음과 같습니다.
  1. 타입 변수 T에 함수 타입 FuncA가 할당됩니다.
  1. T는 () ⇒ string 이 됩니다.
  1. 조건부 타입의 조건식은 다음 형태가 됩니다 () ⇒ string extends () ⇒ infer R ? R : never
  1. 조건식을 참으로 만드는 R 타입을 추론 합니다 그 결과 R은 string이 됩니다.
  1. 추론이 가능하면 이 조건식을 참으로 판단합니다 따라서 결과는 string이 됩니다.
만약 다음과 같이 추론이 불가능하다면 조건식을 거짓으로 판단합니다.
코드를 불러오는 중 입니다 ...
다음은 Promise의 resolve 타입을 infer를 이용해 추출하는 예 입니다.
코드를 불러오는 중 입니다 ...
 
PREV분산적인 조건부 타입