TypeScript中的自定义装饰器

shot

如何访问在其中调用装饰器的类的变量?

@TestDecorator()
export class AppController {
    private testData: number  = 15;
}

export const TestDecorator = (options: ICrudConfig) => (target: Object) => {
  console.log(target.prototype.testData);
};

target.prototype.testData未定义

先感谢您

michmich112

Typescript的类修饰器doc对此进行了解释。您的类装饰器允许您扩展和修改构造函数,而您不能直接访问和修改类的原型。

尝试使用控制台记录目标,以查看可以访问的内容;)

我的建议:尝试返回一个扩展目标的类。

请记住,在类实例化之前对类装饰器进行了评估,因此您将能够覆盖方法和常量,但是您将无法访问稍后在执行中实例化的变量。

export const TestDecorator = (options: ICrudConfig) => (target: Object) => {
  return class extends target { // returns a new class extending the decorated one;
    constructor {
      super();
      console.log(this.testData);
    }
  };
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Tornado 中的自定义装饰器

如何在Django中编写自定义装饰器?

如何在Django中制作自定义装饰器?

更改Flask和自定义装饰器的顺序会破坏自定义装饰器

定义自定义装饰器,例如staticmethod

确保使用自定义装饰器装饰金字塔应用程序中的每个视图

Django Rest Framework 内部函数未在自定义装饰器中调用

自定义装饰器中的龙卷风异步动作

将请求对象和其他参数放入自定义装饰器中

Django中自定义构建装饰器的条件设置问题

Django中自定义构建装饰器的安全性问题

Django Rest框架中基于类的视图的自定义装饰器

Flask 自定义装饰器未按预期运行

应用函数并使用装饰器检查自定义异常

Django-自定义装饰器-参数未填写

菊花链式Python / Django自定义装饰器

Django自定义权限方法或装饰器

Angular 2自定义装饰器取消订阅策略

Django:自定义装饰器:会话或重定向

Django自定义装饰器-属性错误

类视图集的自定义装饰器

NestJs - 从自定义装饰器内的服务调用方法

创建继承自@Body()或@Param()装饰器的自定义NestJs装饰器?

VSCode扩展中的自定义视图装饰

在 NestJS 中,如何在自定义方法装饰器中获取执行上下文或请求实例?

Thymeleaf装饰器-如何在一个特定页面上通过自定义页脚替换布局中的页脚

TypeScript中的自定义错误类

SonarQube 中的自定义 TypeScript 规则

TypeScript 中的自定义对象转换