L'héritage Multiple solutions de contournement
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 implements
, 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: Utilisation new
:
interface Layer extends ILayerInfo, ILayerStatic {
new(info: ILayerInfo);
}
//usage: new Layer({ a: "" });
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?