面试题答案
一键面试类装饰器代码
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
的构造函数。通过返回一个新的类,我们可以在新类的构造函数中实现记录实例化时间戳并打印的逻辑。