Get Return Type - medium - [Type Challenge]

강성훈·2023년 1월 25일
0

type-challenges

목록 보기
14/20
post-thumbnail

by Anthony Fu @antfu

문제

내장 제네릭 ReturnType<T>을 이를 사용하지 않고 구현하세요.

const fn = (v: boolean) => {
  if (v)
    return 1
  else
    return 2
}

type a = MyReturnType<typeof fn> // should be "1 | 2"

솔루션

만들고자 하는 제네릭은 타입 변수로 함수 타입을 받는다.

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

조건부를 통해 리턴 값을 추론하여 추론 한 타입을 반환한다.

profile
고등학생 주니어 개발자

0개의 댓글