首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

no-constant-condition

配置文件中的"extends": "eslint:recommended"属性启用此规则。

作为测试条件的常量表达式(例如,文字)可能是特定行为的拼写错误或开发触发器。例如,以下代码看起来好像尚未准备好进行生产。

代码语言:javascript
复制
if (false) {
    doSomethingUnfinished();
}

规则细节

此规则在下列测试条件中不允许使用常量表达式:

  • ifforwhile,或do...while语句
  • ?: 三元表达

此规则的错误代码示例:

代码语言:javascript
复制
/*eslint no-constant-condition: "error"*/

if (false) {
    doSomethingUnfinished();
}

if (void x) {
    doSomethingUnfinished();
}

for (;-2;) {
    doSomethingForever();
}

while (typeof x) {
    doSomethingForever();
}

do {
    doSomethingForever();
} while (x = -1);

var result = 0 ? a : b;

此规则的正确代码示例:

代码语言:javascript
复制
/*eslint no-constant-condition: "error"*/

if (x === 0) {
    doSomething();
}

for (;;) {
    doSomethingForever();
}

while (typeof x === "undefined") {
    doSomething();
}

do {
    doSomething();
} while (x);

var result = x !== 0 ? a : b;

选项

checkLoops

默认设置为true。设置此选项false允许循环中的常量表达式。

正确代码的例子,当checkLoopsfalse

代码语言:javascript
复制
/*eslint no-constant-condition: ["error", { "checkLoops": false }]*/

while (true) {
    doSomething();
    if (condition()) {
        break;
    }
};

for (;true;) {
    doSomething();
    if (condition()) {
        break;
    }
};

do {
    doSomething();
    if (condition()) {
        break;
    }
} while (true)

版本

这条规则是在 ESLint 0.4.1中引入的。

资源

扫码关注腾讯云开发者

领取腾讯云代金券