eslint规则来强制在块的顶部声明变量?

时间:2018-09-20 19:12:41

标签: javascript ecmascript-6 eslint ecmascript-7

是否有一个强制执行的规则,要求在块的顶部声明变量? vars-on-top规则似乎只适用于var关键字,而不是我想要的(例如,它将禁止for (var i = 0; ...)。这是一个人为的示例。

错误代码

doWork() {
    const work = this.getWork();

    if (work.isReady) { ... }

    let workResult = work.getResult();

    // ...

    return workResult;
}

好代码

doWork() {
    const work = this.getWork();
    let workResult;

    if (work.isReady) { ... }

    workResult = work.getResult();

    // ...

    return workResult;
}

1 个答案:

答案 0 :(得分:4)

我不知道有什么规则。

var规则有一个非常重要的目的:防止由于var的非明显提升行为而意外引入错误。该规则迫使您自行抬高他们,使行为明显(如果仍然令人讨厌)

使用letconst that's no longer an issue,因此强制执行该行为的主要实际原因不再存在。在定义变量之前使用变量仍然是一个问题,但是有一个no-use-before-define rule可以处理该变量(包括letconst在内)。