프론트엔드 개발자로 일하기

typescript의 infer 키워드

프론트루나 2025. 3. 12. 08:24
반응형

infer 키워드는 조건부 타입에서 특정 타입을 추론하는데 사용된다. 즉, 타입을 직접 지정하는 것이 아니라 타입스크립트가 해당 타입을 유추할 수 있도록 돕는 역할을 한다. infer는 extends를 사용하는 조건부 타입 안에서 활용되며, 특정 타입을 분해하여 사용할 수 있다.

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

함수 타입 T의 반환 타입을 추출하는 유틸리티 타입이다. T가 함수 타입이라면 infer R에 의해서 타입을 R로 추론하고, 그렇지않으면 never를 반환한다.
주의할 점은 infer은 반드시 조건부 타입 안에서만 사용되어야 한다. 독립적으로 사용 불가.

extends 키워드의 용도

  1. 제네릭에서 타입을 제한하는 역할을 한다. 예를 들어, 특정 타입이 반드시 string을 확장해야한다면, 아래와 같이 정의할 수 있다.

    type Example<T extends string> = T;
  2. 조건부 타입에서 특정 타입이 다른 타입을 포함하는지 확인하는 역할을 한다.

    type Check<T> = T extends string ? '문자열' : '다른 타입';
    

type Example1 = Check<'hello'>; // 문자열
type Example2 = Check<42> // 다른타입
```

반응형