【发布时间】:2023-04-08 20:43:01
【问题描述】:
我正在尝试发现一种将多个接口组合成一个抽象类的模式。目前我可以通过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: "" });
【问题讨论】:
标签: abstract-class typescript multiple-inheritance