Typescript仅复制函数参数而不返回类型

时间:2019-03-27 21:37:10

标签: typescript

我有一些util方法,我想知道是否有一种方法可以将参数从一个方法复制到另一个方法。我当时在玩typeof并尝试以这种方式键入第二个函数,但我不太清楚。

declare function foo(a: number, b: string): number;

现在,我希望类型bar具有foo的参数,但不具有返回类型,例如,假设它调用foo但不返回任何内容:

const bar = (...args) => { foo(...args); }

现在我可以声明barfoo具有完全相同的类型:

const bar: typeof foo = (...args) => { foo(...args); }

,但返回类型现在不匹配。那我该怎么办:

  • 只需复制参数签名
  • 更改我从typeof foo获得的返回类型

1 个答案:

答案 0 :(得分:1)

内置Parameters类型

declare function foo(a: number, b: string): number;

type fooParameters = Parameters<typeof foo>;

declare const bar: (...parameters: fooParameters) => void;
// inferred as const bar: (a: number, b: string) => void