Type Challenges

Parameters

#TypeScript

3312 - Parameters

내장 제네릭 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 Params
) => any
  ? Params
  : never;

Reference

Type Challenges, 3312 - Parameters