Typescript mixin类与装饰器
问题描述:
我一直在玩mixin类,并且一直难以理解它们如何与装饰器进行交互。Typescript mixin类与装饰器
当我使用一个装饰我相处的'财产“_tag”线的消息不存在于类型OriginalClass但似乎如果我创建一个中间类工作确定。这是它应该完成的方式,还是有另一种方法来做到这一点?
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'
谢谢,希望我看到这个问题早一点 - 是相当夸大对混入类。 – noveyak