조건부 타입은 타입 수준에서 if처럼 결과를 고른다
T extends U ? X : Y 형태로 입력 타입이 조건을 만족하는지에 따라 다른 타입 결과를 만든다.
Input T
검사할 타입을 받음
extends check
T가 U에 할당 가능한지 판단
true branch
조건을 만족하면 X 선택
false branch
아니면 Y 선택
Union distribute
T가 union이면 각 멤버에 개별 적용
| 점검 | 기준 |
|---|---|
| Exclude<T, U> | U에 속하는 멤버를 제거 |
| Extract<T, U> | U와 겹치는 멤버만 남김 |
| ReturnType<F> | 함수 시그니처에서 반환 타입 추출 |
핵심 조건부 타입은 런타임 분기가 아니라 타입 계산의 분기다.