MST
星途 面试题库

面试题:TypeScript方法装饰器基础应用

请用TypeScript编写一个方法装饰器,该装饰器用于在方法执行前打印日志,显示方法名和传入的参数,在方法执行后打印日志,显示方法的返回值。假设方法名为`exampleMethod`,接受两个数字参数并返回它们的和。
48.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function logMethod(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
    const originalMethod = descriptor.value;
    descriptor.value = function(...args: any[]) {
        console.log(`调用方法 ${propertyKey},参数:`, args);
        const result = originalMethod.apply(this, args);
        console.log(`方法 ${propertyKey} 返回值:`, result);
        return result;
    };
    return descriptor;
}

class ExampleClass {
    @logMethod
    exampleMethod(a: number, b: number): number {
        return a + b;
    }
}

const example = new ExampleClass();
example.exampleMethod(1, 2);