规则详情

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

This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

AUws2W9Ay05gfoW+XpyXQ7bVZy5vtcutuTEk1bqqm6aX9VHXodCCo2zuNsxeFBAvWFZgxMYLlkMWAi/knhY927q2JPYlurWAvrEOrnZhTFDMHNEKE6lG47NuRc0ovM9QPfF3Id23204TuTLtPhMVJNmlcfXz4CnwvLxKW4NHK7M=

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

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

function b() {
    foo ||= 1;
    bar &&= 1;
}

RpvEYHjebpF/G+L1YhNEYXs0wIWZHtbMeI8wmNKtBle+Tu4d5ZHwX5q+ZTpXtjXyrmIZ6XUt9u/RDTR5fsgXWOljBSIxuAMF2OXfNU8JXCFPJL+fJ6HcIpAzr0l2xJmNjTgir0z4zQYwo/YLtHTnNATc/vsbjkEQh6hMz/l8syw=

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

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

function b() {
    foo ||= 1;
}

pN9zq1DUXQUhk/BEpMmP6lhDQdcObsV4iHb7IpDfGlLCk4gFUUYLtnEmddFriUSDLxuk6qBz9Oyr3VJLk+yjA66hAqBUyxpt+tQuFSQ4Hp3HGJYKeSQ9SUcWV7N1beQwYXUT5cDPxiYJyQqXe/AjrNhZ/O0ZlX+Sqm724yAt1dOu3Tw2SFCvipijDwv5Y0wQzsQZUfWEsBnEInO7jPUzwWbmYTWRYhe/MVNYWuqwXdFjX1c3XbdTvuZpK5Ir424MG5FjHsXQhv2JCxHq3wJmDtFCUv49GPxWYrGNfaqt2rV1vgQX3AVZhYygghRYx7FMEB6LC58shXhJZyq4+az2ifBABSgziJPnNV+VRMjPHr0JOTDwpNVjNehMQ/A6v5X7wFKMmiZpPZsvkhQEhQZ5QYMx7dCCphsTXUTimmD03se6/nvpRrO2P5fuXEGPDnDvflumsh+haLi+tEaWv6JZLBaYYRw6c/1duMX0F2NQEc/TfBnw5wksywBXh03hILMCw81k8minDornzMSYGWDfzz1pHFak+Q7h3mnYBjZjilK2pZ5Zxr8yUESdRony9mc6oK6j5dkMpU6pLUK25LHf9A==

OV2YyGgI66EU+vvR9e6GMnTIHmhMS+Wp61I9lZFjx3L1Gj7p3btNbPGWXDeAbvZoAAv1VRSUtWCke7vYHYmHFLFlw4Sq0hCPjG0BkxxOyx5HEMBzNuXunNy9usjCgxSsLmWWn9c0YwVdPyNURBMyR/VpYQmpaiB/P340aCktQNHPuniYy2HL0Z80l+mgV5YY

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

class C {
    x = a || b || c; // this initializer has complexity = 3
}

class D { // this static block has complexity = 3
    static {
        if (foo) {
            bar = baz || qux;
        }
    }
}

OV2YyGgI66EU+vvR9e6GMuDNpeAreZjNftHqRiyqKMk0A8Xv3IyqVLTDUffLukiwFWccZ4fCEde/D4d2TLwA2/MvlB+X1B558gQJoYMhHA/Fm0cnzrzBykHdq3SQ419LA1Uracrk3AYnGU03zbCGww5LdJenxZd/JfzdLqmV595KCJz5smtL43HLlXb9TDbe

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

function foo() { // this function has complexity = 1
    class C {
        x = a + b; // this initializer has complexity = 1
        y = c || d; // this initializer has complexity = 2
        z = e && f; // this initializer has complexity = 2

        static p = g || h; // this initializer has complexity = 2
        static q = i ? j : k; // this initializer has complexity = 2

        static { // this static block has complexity = 2
            if (foo) {
                baz = bar;
            }
        }

        static { // this static block has complexity = 2
            qux = baz || quux;
        }
    }
}