极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。

# 在 ts 中什么是 infer,并实现 Parameters 与 ReturnType

Issue

欢迎在 Gtihub Issue 中回答此问题: Issue 715 (opens new window)

type Parameters<T extends (...args: any[]) => unknown> = T extends (
  ...args: infer R
) => unknown
  ? R
  : never;

Author

回答者: zhimazz (opens new window)

Parameters 是啥

Author

回答者: Asarua (opens new window)

Parameters 是啥

取得某个函数的参数类型的高级类型

Author

回答者: iceycc (opens new window)

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[]
Last Updated: 11/27/2021, 6:11:48 PM