// 定义权限验证装饰器
function checkPermission(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
const originalMethod = descriptor.value;
descriptor.value = function(...args: any[]) {
// 假设这里通过某种方式获取当前用户权限,这里简单模拟为一个变量
const currentUserRole = 'admin';
if (currentUserRole === 'admin') {
return originalMethod.apply(this, args);
} else {
console.log('没有权限调用此函数');
}
};
return descriptor;
}
// 被装饰的函数
class MyClass {
@checkPermission
myFunction() {
console.log('执行函数');
}
}
// 调用装饰后的函数
const myObj = new MyClass();
myObj.myFunction();