Decorator(装饰器)是ECMAScript中一种与class相关的语法,用于给对象在运行期间动态的增加功能。Node.js 还不支持Decorator,可以使用Babel进行转换,也可以在TypeScript中使用Decorator。本示例则是基于TypeScript来介绍如何在node服务中使用Decorator。
一、 TypeScript相关
由于使用了 TypeScript ,需要安装TypeScript相关的依赖,并在根目录添加 tsconfig.json 配置文件,这里不再详细说明。要想在 TypeScript 中使用Decorator 装饰器,必须将 tsconfig.json 中 experimentalDecorators设置为true,如下所示:
tsconfig.json
{
"compilerOptions": {
…
// 是否启用实验性的ES装饰器
"experimentalDecorators": true
}
}
二、 装饰器介绍
1. 简单示例
Decorator实际是一种语法糖,下面是一个简单的用TypeScript编写的装饰器示例:
const Controller: ClassDecorator = (target: any) => {
target.isController = true;
};
@Controller
class MyClass {
}
console.log(MyClass.isController); // 输出结果:true
Comments