在 ts 中什么是 infer,并实现 Parameters 与 ReturnType
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 715
Author 回答者: heretic-G
type Parameters<T extends (...args: any[]) => unknown> = T extends (
...args: infer R
) => unknown
? R
: never;
Author 回答者: zhimazz
Parameters 是啥
Author 回答者: Asarua
Parameters 是啥
取得某个函数的参数类型的高级类型
Author 回答者: iceycc
Parameters
type Parameters<T extends (...args: any) => any> = T extends (
...args: infer P
) => any
? P
: never;
type A = Parameters<() => void>; // []
type B = Parameters<typeof Array.isArray>; // [any]
type C = Parameters<typeof parseInt>; // [string, (number | undefined)?]
type D = Parameters<typeof Math.max>; // number[]