我有一个界面:
interface I {
new(name: string, ...args: any[]);
}
带有这样的构造函数的类:
constructor(name: string) { }
constructor(name: string, a: number) { }
constructor(name: string, a: string, b: string, c: string, d: string) { }
constructor(name: string, x: { b: boolean }) { }
它总是告诉我实现不适合接口。
我认为使用, ...args: any[]
就足够了,但事实并非如此。
这是语法错误:, ...args?: any[]
。
即使我将所有其他参数都设置为可选,例如explained in this answer,它也会产生同样的错误:
constructor(name: string, a?, b?, c?) { }
In one of those answers,有人建议不要在界面中使用构造函数原型(是的,我也试过重载而没有成功)。但是,如果构造函数接口至少具有此name: string
并且其余部分是可选的,那将是很好的。
如何让构造函数具有1个强制参数和0-n可选参数?
答案 0 :(得分:1)
我无法在评论中发布指向更详细示例的链接,因此我将其发布在此处:playground example