引用: Override constructor with an class decorator? http://blog.wolksoftware.com/decorators-metadata-reflection-in-typescript-from-novice-to-expert-part-ii
我想在应用方法装饰器时使用自定义类包装类构造函数(即以与类装饰器相同的方式)。我需要这个,因为我有另一个将调用类的组件,并将执行装饰的方法。让组件执行被装饰的方法并不困难,但是因为装饰器在实例化类之前运行,所以装饰方法不会与类实例相关联,因此无法访问任何类状态(即这个==未定义)。所以我希望能够在类实例化(即构造函数)期间为组件提供方法引用,以便它绑定到当前实例。
所以我想这样做(打字稿):
class Foo {
constructor(private value) { }
@execute
bar() {
return this.value;
}
}
这会产生与此相同的影响:
class Foo {
constructor(private value) {
StaticComponent.AddReference(this.bar().bind(this));
}
bar() {
return this.value;
}
}
如果我的其他组件有对bar()的引用,它应该能够使用具有对其实例的完全访问权限的bar来执行它。
我试图以类似于类装饰器的方式覆盖目标等的原型,但是无法使其工作。