3312 - Parameters
实现内置的 Parameters<T>
类型。获取函数参数的类型数组
例如:
const foo = (arg1: string, arg2: number): void => {}
type FunctionParamsType = MyParameters<typeof foo> // [arg1: string, arg2: number]
Solution
type MyParameters<T extends (...args: any[]) => any> = T extends (
...args: infer P
) => any
? P
: never
通过 infer
关键字提取出函数参数类型 P
,由于 P
已经是数组了,直接返回即可