装饰器在ts中还是实验性特性,未来可能会删除,所以在
ts/jsconfig.json中要设置
{
"compilerOptions": {
"experimentalDecorators": true
}
}
在一些场景下我们需要额外的特性来支持标注或修改类及其成员。 装饰器(Decorators)为我们在类的声明及成员上通过元编程语法添加标注提供了一种方式。
装饰器 是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上。 装饰器使用 @expression
这种形式,expression
求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。
类装饰器
类装饰器表达式会在运行时当作函数被调用,类的构造函数作为其唯一的参数。
类装饰器 在类声明之前被声明(紧靠着类声明)。 类装饰器应用于类构造函数,可以用来监视,修改或替换类定义。 类装饰器不能用在声明文件中( .d.ts
),也不能用在任何外部上下文中(比如declare
的类)。
如果类装饰器返回一个值,它会使用提供的构造函数来替换类的声明。
如在cocos项目中新建的ts类都会带
@ccclass
所以这个类不用另写构造函数