입력 타입
제네릭 T가 어떤 모양인지 아직 확정되지 않은 상태다.
조건부 타입이 입력 구조를 먼저 맞춘 뒤, 구조 안쪽의 타입을 infer 변수로 꺼낸다.
제네릭 T가 어떤 모양인지 아직 확정되지 않은 상태다.
T extends Promise<infer U>처럼 구조를 먼저 맞춘다.
맞은 자리의 타입이 U라는 임시 이름으로 묶인다.
성공하면 U를 반환하고 실패하면 별도 타입으로 떨어진다.
infer는 아무 타입이나 추측하지 않는다. extends 오른쪽 패턴이 맞을 때만 해당 위치의 타입을 이름 붙인다.