Ich habe mit Mixing-Klassen herumgespielt und hatte Schwierigkeiten zu verstehen, wie sie mit Dekorateuren interagieren.Typescript mixin classes with decorators
Wenn ich einen Dekorator verwende, bekomme ich eine Nachricht in der Art von 'Eigenschaft' _tag 'existiert nicht auf dem Typ OriginalClass, aber es scheint in Ordnung zu sein, wenn ich eine Zwischenklasse erstelle. Soll das so gemacht werden oder gibt es einen anderen Weg dies zu tun?
function mix<T extends Constructor<{}>>(Base: T) {
return class extends Base {
_tag: string;
constructor(...args: any[]) {
super(...args);
this._tag = "";
}
}
}
@mix
class OriginalClass {
constructor() {
//do something
}
}
const a = new OriginalClass();
// Why does this not work
a._tag = 'hi'
// But this does work
class NewClass extends mix(OriginalClass){};
b = new NewClass()
b._.tag = 'hi'
Danke, ich wünschte, ich hätte dieses Problem etwas früher gesehen - war ziemlich begeistert von den Mixinklassen. – noveyak