MST

星途 面试题库

面试题:TypeScript 自定义装饰器基础实现

请使用TypeScript实现一个简单的方法装饰器,该装饰器能够在方法执行前打印一条日志,表明方法即将执行。
15.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function logBeforeExecution(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
    const originalMethod = descriptor.value;
    descriptor.value = function(...args: any[]) {
        console.log(`即将执行方法 ${propertyKey}`);
        return originalMethod.apply(this, args);
    };
    return descriptor;
}

class MyClass {
    @logBeforeExecution
    myMethod() {
        console.log('方法执行中...');
    }
}

const myObj = new MyClass();
myObj.myMethod();