/** * Obtain the return type of a function type */ type ReturnType any> = T extends (...args: any) => infer R ? R : any; ReturnType, es5 타입스크립트 기본 라이브러리에 들어있는, 함수의 리턴 타입을 알아내는 타입 함수(?)다. infer 키워드는 extends 구문에서, 아무데에나 들어가서 그 위치에 들어갈 수 있는 최대한의 타입을 유추한다. 그리고 그것을 extends 문이 참일 때 반환될 구문에서 사용할 수 있다. 위 함수를 보면 문제점을 하나 알 수 있는데, 함수가 입력에 따라서 반환값의 타입이 바뀌는 경우 이를 정확히 찾아낼 수 없다는 것이다. 이를 해결하기 위해서 GetReturnType이..