MST
星途 面试题库

面试题:TypeScript 5.0 装饰器标准演进中的类装饰器应用

在TypeScript 5.0中,类装饰器的标准有了新的演进。请你编写一个类装饰器,用于在类实例化时记录实例化的时间戳,并在控制台打印出来。同时说明在新的装饰器标准下,类装饰器的参数代表什么含义。
47.4万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

类装饰器代码

function timestampLogger(target: Function) {
    return class extends target {
        constructor(...args: any[]) {
            super(...args);
            console.log(`实例化时间戳: ${Date.now()}`);
        }
    };
}

@timestampLogger
class MyClass {
    // 类的内容
}

const myInstance = new MyClass();

新装饰器标准下类装饰器参数含义

在TypeScript 5.0新的装饰器标准下,类装饰器接受一个 target 参数,这个 target 代表被装饰的类的构造函数。在上述代码中,timestampLogger 装饰器的 target 参数就是 MyClass 的构造函数。通过返回一个新的类,我们可以在新类的构造函数中实现记录实例化时间戳并打印的逻辑。