装饰器
装饰器的本质是一个函数,通过装饰器可以定义跟对象相关的元数据。
- 装饰器使用范围:类、属性、方法、参数、访问器
- 写法:
@expression
,expression 是函数名
注意:装饰器是一项实验性功能,可能会在未来版本中引入重大更改。
装饰器的语法
普通装饰器不带参数,装饰器工厂可以带参数。
普通装饰器
function MyDecorator(target: any) {}
@MyDecorator
class MyClass {}
装饰器工厂
function MyDecorator(value: string) {
return funtion (target: any) {}
}
@MyDecorator({ name: 'ts'})
class MyClass {}
装饰器组合
- 一行:
@f @g class MyClass {}