Solutions de contournement de l'héritage de types multiples?
Je suis en train de découvrir un modèle pour combiner plusieurs interfaces dans une classe abstraite. Actuellement, je peux combiner plusieurs interfaces via "met en œuvre", mais une interface ne peut pas déclarer un constructeur. Quand je dois introduire un constructeur, je suis obligé d'utiliser une classe abstraite. Lorsque j'utilise une classe abstraite, je dois re-déclarer la totalité de l'interface composite! Certes, je suis en manque de quelque chose?
interface ILayerInfo {
a: string;
}
interface ILayerStatic {
b(): string;
}
class Layer implements ILayerInfo, ILayerStatic {
constructor(info: ILayerInfo);
a: string;
b(): string;
}
RÉPONSE: l'utilisation de "nouvelles":
interface Layer extends ILayerInfo, ILayerStatic {
new(info: ILayerInfo);
}
//usage: new Layer({ a: "" });
source d'informationauteur Corey Alix
Vous devez vous connecter pour publier un commentaire.
Déclarer un constructeur sur la même interface que les membres de l'instance n'a pas vraiment beaucoup de sens, si vous allez passer dans un type dynamiquement à utiliser dans un constructeur, c'est le côté statique de la classe qui serait restreinte. Ce que vous voulez faire, c'est probablement quelque chose comme ceci:
Voir aussi Comment tapuscrit construire des interfaces avec les signatures de travail?