12
私は1つの抽象クラスに複数のインターフェイスを組み合わせるパターンを発見しようとしています。現在、私は "implements"を介して複数のインターフェースを組み合わせることができますが、インターフェースはコンストラクターを宣言できません。コンストラクタを導入する必要があるとき、私は抽象クラスを使用することを余儀なくされます。私が抽象クラスを使用するとき、私は複合インターフェース全体を再宣言する必要があります!確かに私は何かを欠いている?Typescript複数の継承の回避策?
interface ILayerInfo {
a: string;
}
interface ILayerStatic {
b(): string;
}
class Layer implements ILayerInfo, ILayerStatic {
constructor(info: ILayerInfo);
a: string;
b(): string;
}
ANSWER:使用「新しい」:インスタンスメンバーと同じインターフェイス上のコンストラクタを宣言
interface Layer extends ILayerInfo, ILayerStatic {
new(info: ILayerInfo);
}
// usage: new Layer({ a: "" });
それは私が行方不明になったインターフェイス上の「新しい」キーワードだった:何をしたいと思うことは、おそらくこのようなものです!私はクラスを全く望んでいませんでした。 "新しい"と私はインターフェイスに固執することができます。 –