通俗理解 TypeScript 装饰器


通俗理解 TypeScript 装饰器

装饰器就像是给 类、属性、方法、参数 贴标签,同时可以在标签里加上自己的“魔法”,让它们的功能更强大。


作用

  1. 类装饰器:给类加功能,就像给手机装个壳带电池。
  2. 属性装饰器:给属性加限定,比如“只读”。
  3. 方法装饰器:给方法包上壳,执行前后都能加点操作,比如记录日志。
  4. 参数装饰器:标记参数,做校验、日志等。

能干啥

  • 自动记录日志
  • 方法执行前校验权限
  • 把返回值缓存起来
  • 自动注册路由
  • 参数自动检查

简单例子

类装饰器:

function Animal(type: string) {
  return function (target: any) {
    target.prototype.type = type;
  }
}

@Animal('猫')
class Cat {}
console.log(new Cat().type);  // 猫

方法装饰器:

function Log(target: any, key: string, descriptor: PropertyDescriptor) {
  const oldMethod = descriptor.value;
  descriptor.value = function (...args: any[]) {
    console.log('方法调用了', key, args);
    return oldMethod.apply(this, args);
  }
}

class Math {
  @Log
  add(a: number, b: number) {
    return a + b;
  }
}

new Math().add(1, 2); // 控制台:方法调用了 add [1,2]

总结一句话

装饰器=贴标签+加功能,让类、方法、属性、参数更智能、灵活,少写重复代码。


十四五”规划(2021-2025)核心内容

with

评 论
请登录后再评论