带接口的构造函数中的1-n参数

时间:2017-02-24 14:42:10

标签: typescript

我有一个界面:

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可选参数?

1 个答案:

答案 0 :(得分:1)

@Seamus给了你正确答案。您无法实现接口中定义的类的静态属性。但你仍然可以检查他们。阅读他提供的链接 - 他们很好地解释了这个问题。

我无法在评论中发布指向更详细示例的链接,因此我将其发布在此处:playground example