首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时执行Decorator代码?

何时执行Decorator代码?
EN

Stack Overflow用户
提问于 2018-05-04 20:25:40
回答 1查看 735关注 0票数 1

对于下面给定的语法,

代码语言:javascript
复制
import validator from "./ZipCodeValidator";

在构建/捆绑时,将对象的字典从ZipCodeValidator.ts导入到当前名称空间中的命名validator

其中ZipCodeValidator.ts看起来像:

代码语言:javascript
复制
export class C {
    @f()
    @g()
    method() {}
}

在构建/捆绑时运行导入语句(上面)时,是否对ZipCodeValidator.ts中的方法进行注释?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-04 20:37:25

在执行类声明时,总是执行装饰符。由于大多数类声明通常位于模块的顶级范围内,这可能意味着它们在执行代码时运行,但是没有什么可以阻止您在另一个函数中拥有类声明,在这种情况下,装饰器只能在调用该函数时运行。

在您的具体情况下,装饰器工厂f()将在声明期间运行,以返回实际的装饰器函数,然后类声明将调用装饰器。

在调用method时,装饰器函数本身总是可以对method进行变异以调用某些自定义逻辑,但到那时,装饰器本身已经完成了很长时间。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50182601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档