打字稿装饰器中的此冲突

时间:2020-11-05 13:57:31

标签: typescript scope typescript-decorator

我试图在一个类中编写一个装饰器,但是在this是正确值的问题上遇到了问题。考虑以下情况,我想拥有一个装饰器,该装饰器在执行装饰方法时仅打印类成员的值:

class A {
  private foo = 'bar'

  decorate(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
    const originalMethod = descriptor.value
    descriptor.value = function(...args: any[]) {
      console.log(this.foo)
      return originalMethod.apply(this, args)
    }
  }
}

我知道代码是错误的,因为在内部子句中,首先,我希望thisA的实例,但是后来,我希望它成为{{1 }}。如何正确设置并仍然访问描述符和实例?

0 个答案:

没有答案