装饰器(Decorators)是 TypeScript 提供的一种实验性特性,用于在类、方法、属性或参数上添加元数据以及修改类的行为。装饰器可以理解为一种函数,它可以被附加到类的声明、方法、访问符、属性或参数上,以修改类的行为或属性。

使用装饰器的步骤:

  1. 定义装饰器函数:定义一个装饰器函数,它接收三个参数:
      • 对于类和方法装饰器:分别是目标对象(类的构造函数或类的原型)、成员的名称(方法名)、成员的属性描述符。
      • 对于属性装饰器:分别是目标对象(类的原型)、属性的名称。
      • 对于参数装饰器:分别是目标对象(类的原型)、成员的名称(方法名或属性名)、参数在函数参数列表中的索引。
  1. 应用装饰器:将装饰器函数应用到目标类、方法、属性或参数上,使用 @ 符号。

类装饰器(Class Decorators):

类装饰器用于修改或添加类的行为或属性。类装饰器的返回值将会替换类的声明。

方法装饰器(Method Decorators):

方法装饰器用于修改或添加方法的行为。

属性装饰器(Property Decorators):

属性装饰器用于修改或添加类的属性。

参数装饰器(Parameter Decorators):

参数装饰器用于修改或添加函数的参数。
总的来说,装饰器是一种功能强大的元编程特性,可以用于在编译阶段动态地修改类的结构和行为,但由于装饰器目前还处于实验阶段,因此在使用时需要谨慎,并且注意不同版本的 TypeScript 对装饰器的支持程度可能会有所不同。

 
装饰器实践
 
  • Giscus
  • Utterance