Typescript:类的装饰器
在TypeScript中,类装饰器是一个表达式,其值是一个函数,这个函数在装饰器被调用时会被执行,并且会接收到三个参数:目标类的构造函数。
装饰器的一般使用场景是在类被创建时,动态地修改类的行为。装饰器可以用来增加属性、方法或者改变类的结构。
以下是一个简单的类装饰器的例子:
function logClass(target: any) {
console.log('A class named ' + target.name + ' has been decorated.');
}
@logClass
class MyClass {
// Class body
}
在这个例子中,logClass
就是一个装饰器。它接收一个参数target
,这个参数是被装饰的类的构造函数。当MyClass
使用@logClass
装饰时,控制台会输出A class named MyClass has been decorated.
。
装饰器的使用需要在tsconfig.json中启用experimentalDecorators编译器选项。
{
"compilerOptions": {
"target": "ES5",
"experimentalDecorators": true
}
}
装饰器的使用场景可以包括但不限于:依赖注入、日志记录、缓存结果、检查先决条件等。
评论已关闭