타입스크립트의 infer 키워드

규갓 God Gyu·2025년 3월 24일

면접질문

목록 보기
99/142

infer는 조건부 타입에서 특정 타입을 추론하는 데 사용
즉, 타입을 직접 지정하는 것이 아닌 TS가 해당 타입을 유추할 수 있도록 돕는 역할

infer는 extends를 사용하는 조건부 타입 안에서 활용, 특정 타입 분해하여 사용할 수 있음

type GetReturnType<T> = T extends (...args: any[]) => infer R ? R : never;

함수타입T의 반환 타입을 추출하는 유틸리티 타입
T가 함수타입이면 infer R을 통해 반환 타입 R로 추론하고, 아니면 never을 반환

type ReturnType = GetReturnType<() => string>; // string

주의할 점은, infer는 반드시 조건부 타입 안에서 사용되어야 함
독립적으로 사용하면 문법 오류 발생함

extends 키워드

  1. 제네릭에서 타입 제한하는 역할
    ex - 특정 타입이 반드시 string을 확장해야 한다면
type Example<T extends string> = T;
  1. 조건부 타입에서 특정 타입이 다른 타입을 포함하는지를 확인하는 역할
type Check<T> = T extends string ? '문자열' : '다른 타입';

type Example1 = Check<'hello'>; // '문자열'
type Example2 = Check<42>; // '다른 타입'
profile
웹 개발자 되고 시포용

0개의 댓글