infer는 조건부 타입 안에서 필요한 조각을 꺼낸다

함수 반환 타입, 배열 원소 타입, Promise 내부 타입처럼 구조 안쪽의 타입을 이름 붙여 재사용한다.

1
Pattern
T가 특정 구조인지 검사
2
infer R
구조 안쪽 타입을 R로 붙잡음
3
True branch
추출한 R을 결과로 사용
4
False branch
패턴이 아니면 fallback
점검기준
ReturnType(...args) => infer R
AwaitedPromise<infer V>
ElementArray<infer U>

핵심 Array<infer U>