对象参数接口的 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
我在 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