Parameters
实现内置的 Parameters 类型。
// 什么是 Parameters
const foo = (arg1: string, arg2: number): void => {}
type FunctionParamsType = MyParameters<typeof foo> // [arg1: string, arg2: number]
/**
* 思路:利用 extends 的判断来约束 函数的参数的类型 有类型或者没没有类型
*/
type MyParameters<T extends (...args: any[]) => any> = T extends (
...args: infer Args
) => unknown
? Args
: never;