// 日志装饰器 function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value; descriptor.value = function (...args: any[]) { console.log(`Calling ${propertyKey} with args: ${JSON.stringify(args)}`); const result = originalMethod.apply(this, args); console.log(`${propertyKey} returned: ${result}`); return result; }; return descriptor; } // 示例类 class MathOperations { @log add(a: number, b: number): number { return a + b; } @log multiply(a: number, b: number): number { return a * b; } } // 创建实例并调用方法 const math = new MathOperations(); math.add(1, 2); // 调用加法 math.multiply(3, 4); // 调用乘法