Sunny-117 / js-challenges

✨✨✨ Challenge your JavaScript programming limits step by step
https://juejin.cn/column/7244788137410560055
2k stars 236 forks source link

Ts体操--Parameters #433

Open zhuba-Ahhh opened 1 year ago

zhuba-Ahhh commented 1 year ago

实现内置的 Parameters 类型,而不是直接使用它,可参考TypeScript官方文档

type MyParameters<T extends (...args: any[]) => any> = T extends (
  ...args: infer P
) => any
  ? P
  : never;

// infer

const foo = (arg1: string, arg2: number): void => {}
type FunctionParamsType = MyParameters<typeof foo> // [arg1: string, arg2: number]