Je souhaite qu'un composeur Typescript dispose d'une méthode abstraite implémentée par la classe mélangée dans. Quelque chose comme ça.Méthodes abstraites dans les mixages tapuscrits
class MyBase {
}
type Constructor<T = {}> = new (...args: any[]) => T;
function Mixin<TBase extends Constructor<MyBase>>(Base: TBase) {
return class extends Base {
baseFunc(s: string) {};
doA()
{
this.baseFunc("A");
}
}
};
class Foo extends Mixin(MyBase) {
constructor()
{
super();
}
baseFunc(s: string)
{
document.write("Foo "+ s +"... ")
}
};
Maintenant, cela fonctionne, mais je voudrais vraiment faire baseFunc dans le mixin être abstrait pour vous assurer qu'il est mis en œuvre Foo. Est-il possible de le faire, comme abstract baseFunc(s:string);
dit que je dois avoir une classe abstraite, ce qui est interdit pour mixins ...
Je pensais que j'avais essayé cela! Pourquoi "ne pas retourner la classe abstraite ..." travail? (edit - ah parce que c'est anonyme!) – Roddy
Cet exemple perd les méthodes et les propriétés de MyBase. Vous pouvez corriger avec 'la fonction Mixin > (Base: B)'. –