我试图发现一种将多个接口组合成一个抽象类的模式。目前我可以通过 组合多个接口implements
,但是一个接口不能声明一个构造函数。当我必须引入构造函数时,我不得不使用抽象类。当我使用抽象类时,我必须重新声明整个复合接口!我肯定错过了什么吗?
interface ILayerInfo {
a: string;
}
interface ILayerStatic {
b(): string;
}
class Layer implements ILayerInfo, ILayerStatic {
constructor(info: ILayerInfo);
a: string;
b(): string;
}
答案:使用new
:
interface Layer extends ILayerInfo, ILayerStatic {
new(info: ILayerInfo);
}
// usage: new Layer({ a: "" });