✅ 通俗理解 TypeScript 装饰器
装饰器就像是给 类、属性、方法、参数 贴标签,同时可以在标签里加上自己的“魔法”,让它们的功能更强大。
✅ 作用
- 类装饰器:给类加功能,就像给手机装个壳带电池。
- 属性装饰器:给属性加限定,比如“只读”。
- 方法装饰器:给方法包上壳,执行前后都能加点操作,比如记录日志。
- 参数装饰器:标记参数,做校验、日志等。
✅ 能干啥
- 自动记录日志
- 方法执行前校验权限
- 把返回值缓存起来
- 自动注册路由
- 参数自动检查
✅ 简单例子
类装饰器:
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]
✅ 总结一句话
装饰器=贴标签+加功能,让类、方法、属性、参数更智能、灵活,少写重复代码。