infer를 ReturnType 흉내 정도로만 외웠는지, 조건부 타입 안에서 *어디서 어떤 타입이 잡히는지* 단계별로 그릴 수 있는지를 가른다. extends의 두 자리(제네릭 제약 vs 조건 분기)를 구분해서 답하는지가 한 단계 더 깊은 분기다.
infer는 조건부 타입의 extends 절 안에서만 동작하는 키워드다. T extends F<infer U> ? U : never 형태로 쓰면, 들어온 T가 F 패턴에 맞을 때 U 자리에 해당하는 타입 조각이 잡혀 그대로 꺼내 쓸 수 있다. 핵심은 패턴 매칭과 타입 추출을 한 식 안에서 동시에 한다는 점이다. extends는 제네릭 제약 자리와 조건 분기 자리 두 군데에 쓰이는데, infer는 후자(조건 분기)의 추론 단계에서만 의미가 있다.
ReturnType이나 Awaited 같은 유틸을 직접 흉내 내며 만들어 본 경험이 있다면 infer 위치 선택의 의도를 답변에 그대로 녹일 수 있다
라이브러리 제네릭이 어렵게 풀려서 추론 결과를 손으로 따라가 본 경험이 있다면, 조건부 타입의 어느 단계에서 막혔는지 단서로 끌어올 수 있다
타입 테스트로 자체 유틸의 추론 결과를 검증한 경험이 있다면, never로 새는 케이스를 어떻게 잡았는지 구체적으로 풀 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.