Parameters - easy - [Type Challenge]

강성훈·2023년 1월 25일
0

type-challenges

목록 보기
13/20
post-thumbnail

by midorizemi @midorizemi

문제

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

const foo = (arg1: string, arg2: number): void => {}

type FunctionParamsType = MyParameters<typeof foo> // [arg1: string, arg2: number]

솔루션

함수 타입을 받아서 타입을 추론할 것입니다.

type MyParameters<T extends (...args: any[]) => any> = T extends (...args: infer Param) => any ? {[p in keyof Param]: Param[p]} : never;

만약 함수 타입이 맞다면 파라미터를 반환합니다.. 아니라면 never를 반환합니다.

profile
고등학생 주니어 개발자

0개의 댓글