그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록TypeScript
TypeScript

타입스크립트의 infer 키워드에 대해서 설명해주세요.

실무3/5
설계2/5
인간4/5
기초3/5

면접관의 질문 의도

infer를 ReturnType 흉내 정도로만 외웠는지, 조건부 타입 안에서 *어디서 어떤 타입이 잡히는지* 단계별로 그릴 수 있는지를 가른다. extends의 두 자리(제네릭 제약 vs 조건 분기)를 구분해서 답하는지가 한 단계 더 깊은 분기다.

큐레이션 답변

학습 자료

infer는 조건부 타입의 extends 절 안에서만 동작하는 키워드다. T extends F<infer U> ? U : never 형태로 쓰면, 들어온 T가 F 패턴에 맞을 때 U 자리에 해당하는 타입 조각이 잡혀 그대로 꺼내 쓸 수 있다. 핵심은 패턴 매칭과 타입 추출을 한 식 안에서 동시에 한다는 점이다. extends는 제네릭 제약 자리와 조건 분기 자리 두 군데에 쓰이는데, infer는 후자(조건 분기)의 추론 단계에서만 의미가 있다.

좋은 답변 구조

  1. 01infer가 동작하는 위치(`extends` 절 안)와 입력으로 무엇을 받는지 짚는다
  2. 02`T extends F<infer U> ? U : never` 한 식으로 추론 단계가 어떻게 흐르는지 보여준다
  3. 03함수 타입·튜플·프로미스에서 어디에 infer를 두면 어떤 조각이 잡히는지 예로 든다
  4. 04분배 법칙·never로 새는 경우 같은 한계 지점을 짚으며 마무리한다

자주 실수하는 포인트

infer를 `extends` 절 밖, 예컨대 일반 제네릭 제약 자리에서 쓰려고 한다
extends가 제네릭 제약과 조건 분기 두 자리에 쓰이는데 infer가 어느 쪽에서만 도는지 구분하지 못한다
유니온 타입이 들어왔을 때 분배 법칙으로 추론 결과가 펼쳐지는 걸 못 보고 단일 결과를 기대한다
infer 자리 매칭이 실패해 never로 새는 경로를 안 챙겨 호출부에서 타입이 통째로 사라진다

실무 맥락

  • ReturnType·Awaited 같은 빌트인 유틸을 응용해 프로젝트 전용 타입 유틸을 만드는 환경
  • tRPC·GraphQL Codegen 결과에서 응답 일부만 뽑아 컴포넌트 props로 잇는 환경
  • 라이브러리가 내준 제네릭 타입에서 필요한 조각만 끌어와 도메인 타입으로 재구성하는 환경

본인 경험에 녹이는 힌트

ReturnType이나 Awaited 같은 유틸을 직접 흉내 내며 만들어 본 경험이 있다면 infer 위치 선택의 의도를 답변에 그대로 녹일 수 있다

라이브러리 제네릭이 어렵게 풀려서 추론 결과를 손으로 따라가 본 경험이 있다면, 조건부 타입의 어느 단계에서 막혔는지 단서로 끌어올 수 있다

타입 테스트로 자체 유틸의 추론 결과를 검증한 경험이 있다면, never로 새는 케이스를 어떻게 잡았는지 구체적으로 풀 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1유니온 타입을 넣었을 때 분배 법칙 때문에 infer 결과가 어떻게 펼쳐지나요
Q2함수 오버로드 시그니처에서 ReturnType이 마지막 시그니처만 잡는 이유는 무엇인가요
Q3infer 결과가 any로 새서 후속 타입이 무너질 때 어떤 식으로 좁히나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문