MST

星途 面试题库

面试题:TypeScript 装饰器执行顺序基础考察

假设有一个类 `MyClass`,上面依次定义了三个装饰器 `@decorator1`、`@decorator2`、`@decorator3`。请描述这三个装饰器的执行顺序,并解释原因。同时,编写一段简单的 TypeScript 代码来验证你的答案。
38.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
  1. 执行顺序:装饰器 @decorator3 最先执行,然后是 @decorator2,最后是 @decorator1。原因是装饰器从最靠近类定义的地方开始向外执行,就像剥洋葱一样,内层的先执行,外层的后执行。
  2. TypeScript 验证代码
function decorator1(target: any) {
    console.log('decorator1 执行');
    return target;
}

function decorator2(target: any) {
    console.log('decorator2 执行');
    return target;
}

function decorator3(target: any) {
    console.log('decorator3 执行');
    return target;
}

@decorator1
@decorator2
@decorator3
class MyClass { }

当运行这段代码时,控制台会按顺序输出 decorator3 执行decorator2 执行decorator1 执行,验证了上述执行顺序。