对象参数接口的 TypeScript 函数 属性 ...任意数量的参数

TypeScript function property of object parameter interface ... any number of args

我在 Interface 中有一个函数声明,如下所示:

mixin(desc: MixinDescriptor): any;

MixinDescriptor的定义是这样的:

interface MixinDescriptor { [id: string]: () => any; }

但是,如果我像这样使用 mixin 函数:

chance.mixin({
  test: function(arg1, arg2) {
  }
}

VSCode 将表明它不是正确的定义。它可以工作,因为它的实现是这样工作的,但它的接口声明必须是错误的。

我尝试将 MixinDescriptor 更改为:

interface MixinDescriptor { [id: string]: (args: any[]) => any; }

但这也没有用。

我该如何更改它才能正确识别函数,使其能够接受任意数量的命名参数?

尝试这样的事情

 interface MixinDescriptor { 
     [id: string]: (...args: any[]) => any; 
 }

...表示函数可以取rest of parameters。由于剩余参数是可选的,因此该接口适用于任何类型的函数

还要考虑this example