TypeScript-섹션10. 유틸리티 타입- Exclude, Extract, ReturnType (4)

손주완·2025년 7월 15일

Typescript Section10

목록 보기
4/4

Exclude<T, K>

Exclude 타입은 다음과 같이 T로부터 U를 제거하는 타입임.

type A = Exclude<string | boolean, string>;
// 결과: boolean

직접 구현하면 다음과 같음.

type Exclude<T, U> = T extends U ? never : T;

Extract<T, K>

Extract 타입은 다음과 같이 T로부터 U를 추출하는 타입임.

type B = Extract<string | boolean, boolean>;
// 결과: boolean

직접 구현하면 다음과 같음.

type Extract<T, U> = T extends U ? T : never;

ReturnType

ReturnType은 타입변수 T에 할당된 함수 타입의 반환값 타입을 추출하는 타입임. 이 타입은 infer를 활용해 구현할 수 있음.

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

예시

function funcA() {
  return "hello";
}

function funcB() {
  return 10;
}

type ReturnA = ReturnType<typeof funcA>;
// 결과: string

type ReturnB = ReturnType<typeof funcB>;
// 결과: number

0개의 댓글