mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-12-23 00:10:19 +08:00
31 lines
751 B
TypeScript
31 lines
751 B
TypeScript
// 日志装饰器
|
|
function log2(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 MathOperations2 {
|
|
@log2
|
|
add(a: number, b: number): number {
|
|
return a + b;
|
|
}
|
|
|
|
@log2
|
|
multiply(a: number, b: number): number {
|
|
return a * b;
|
|
}
|
|
}
|
|
|
|
// 创建实例并调用方法
|
|
const math2 = new MathOperations2();
|
|
math2.add(1, 2); // 调用加法
|
|
math2.multiply(3, 4); // 调用乘法
|