首页/文档/装饰器

装饰器

使用装饰器扩展类和方法

高级

概述

装饰器是TypeScript中的一个实验性特性,用于扩展类和方法的功能。

装饰器可以用于:

  • 方法
  • 属性
  • 参数

类装饰器

typescript
加载中...

方法装饰器

方法装饰器

方法装饰器可以用于修改方法的行为:

function Log(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
  const originalMethod = descriptor.value;

  descriptor.value = function (...args: any[]) {
    console.log(`Calling ${propertyKey} with args: `, args);
    const result = originalMethod.apply(this, args);
    console.log(`${propertyKey} returned: `, result);
    return result;
  };

  return descriptor;
}

class Calculator {
  @Log
  add(x: number, y: number): number {
    return x + y;
  }
}

实验性特性

实验性特性

装饰器是TypeScript的实验性特性,需要在tsconfig.json中启用:

{
  "compilerOptions": {
    "experimentalDecorators": true
  }
}

注意:装饰器语法可能会在未来版本中发生变化。