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

complexity

循环复杂度测量程序源代码中线性独立路径的数量。该规则允许设置圈复杂度阈值。

function a(x) {
    if (true) {
        return x; // 1st path
    } else if (false) {
        return x+1; // 2nd path
    } else {
        return 4; // 3rd path
    }
}

规则细节

规则旨在通过限制程序中允许的圈复杂度来降低代码复杂性。因此,它会在圈复杂度超过配置的阈值(默认值20)时发出警告。

不正确代码的示例最多为2:

/*eslint complexity: ["error", 2]*/

function a(x) {
    if (true) {
        return x;
    } else if (false) {
        return x+1;
    } else {
        return 4; // 3rd path
    }
}

正确代码的例子最多为2:

/*eslint complexity: ["error", 2]*/

function a(x) {
    if (true) {
        return x;
    } else {
        return 4;
    }
}

选项

或者,您可以指定一个max对象属性:

"complexity": ["error", 2]

相当于

"complexity": ["error", { "max": 2 }]

推荐使用maximum对象属性已弃用。请改用该属性max

何时不使用它

如果您无法确定适合您代码的复杂性限制,则最好禁用此规则。

进一步阅读

相关规则

  • max-depth
  • max-len
  • max-nested-callbacks
  • max-params
  • max-statements

版本

规则在ESLint 0.0.9中引入。

资源

扫码关注腾讯云开发者

领取腾讯云代金券