对于下面给定的语法,
import validator from "./ZipCodeValidator";在构建/捆绑时,将对象的字典从ZipCodeValidator.ts导入到当前名称空间中的命名validator,
其中ZipCodeValidator.ts看起来像:
export class C {
@f()
@g()
method() {}
}在构建/捆绑时运行导入语句(上面)时,是否对ZipCodeValidator.ts中的方法进行注释?
发布于 2018-05-04 20:37:25
在执行类声明时,总是执行装饰符。由于大多数类声明通常位于模块的顶级范围内,这可能意味着它们在执行代码时运行,但是没有什么可以阻止您在另一个函数中拥有类声明,在这种情况下,装饰器只能在调用该函数时运行。
在您的具体情况下,装饰器工厂f()将在声明期间运行,以返回实际的装饰器函数,然后类声明将调用装饰器。
在调用method时,装饰器函数本身总是可以对method进行变异以调用某些自定义逻辑,但到那时,装饰器本身已经完成了很长时间。
https://stackoverflow.com/questions/50182601
复制相似问题