Skip to content

Files

Latest commit

f9e0188 · Apr 11, 2023

History

History
13 lines (10 loc) · 798 Bytes

typescript-infer-keyword.md

File metadata and controls

13 lines (10 loc) · 798 Bytes

Typescript infer keyword

Typescript에는 함수를 이용하여 함수의 반환 타입을 만들 수 있는 유틸리티 타입인 ReturnType이 있는데, 아래와 같이 생겼습니다.

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

여기서 infer라는 키워드를 볼 수 있는데, 이 infer 의 사전적 의미로는 “추론”이라는 뜻이 있습니다. 단순히 ReturnType을 읽어보면, T(…args: any) ⇒ any 함수의 Type 집합 안에 있고, T의 결과값을 R이라는 값으로 추론합니다.

즉, inferextends 키워드를 이용하여 새로운 Type으로 치환하여 이 치환된 Type을 이용할 수 있도록 도와주는 키워드입니다.