# comma-style

强制使用一致的逗号样式

一些该规则报告的问题可以通过 --fix 命令行选项 自动修复

逗号样式规则强制使用逗号分隔列表的样式。JavaScript 中主要使用两种逗号样式:

  • 标准样式,其中逗号放在当前行的末尾
  • 逗号优先样式,其中逗号放在下一行的开头

使用 Comma First 样式的理由之一是它可以帮助跟踪缺少和尾随的逗号。这些都是有问题的,因为变量声明中缺少逗号会导致全局变量泄漏,而尾随逗号会导致旧版本 IE 中的错误。

# 规则详情

此规则在数组字面、对象字面和变量声明中强制使用一致的逗号样式。

本规则不适用于下列任何一种情况:

  • 逗号前后是换行符(单逗号)
  • 单行数组字面量、对象字面量和变量声明

# 选项

此规则有一个字符串选项:

  • "last"(默认)在数组元素、对象属性或变量声明的同一行之后和同一行上需要一个逗号
  • "first" 要求在数组元素、对象属性或变量声明之前和同一行上使用逗号

此规则还接受一个额外的 exceptions 对象:

  • "exceptions" 的属性名称对应于 JavaScript 代码的抽象语法树 (AST) 中的节点类型: "ArrayExpression": true 忽略数组字面中的逗号样式 "ArrayPattern": true 在解构的数组模式中忽略逗号样式 "ArrowFunctionExpression": true 忽略箭头函数表达式参数中的逗号样式 "CallExpression": true 忽略函数调用参数中的逗号样式 "FunctionDeclaration": true 忽略函数声明参数中的逗号样式 "FunctionExpression": true 忽略函数表达式参数中的逗号样式 "ImportDeclaration": true 在导入声明的说明符中忽略逗号样式 "ObjectExpression": true 忽略对象字面中的逗号样式 "ObjectPattern": true 忽略解构对象模式中的逗号样式 "VariableDeclaration": true 忽略变量声明中的逗号样式 "NewExpression": true 忽略构造函数表达式参数中的逗号样式

确定由 ESTree 定义的节点类型的一种方法是将 AST Explorer 与 espree 解析器一起使用。

# last

此规则使用默认 "last" 选项的错误代码示例:

/*eslint comma-style: ["error", "last"]*/

var foo = 1
,
bar = 2;

var foo = 1
  , bar = 2;

var foo = ["apples"
           , "oranges"];

function bar() {
    return {
        "a": 1
        ,"b:": 2
    };
}

此规则使用默认 "last" 选项的正确代码示例:

/*eslint comma-style: ["error", "last"]*/

var foo = 1, bar = 2;

var foo = 1,
    bar = 2;

var foo = ["apples",
           "oranges"];

function bar() {
    return {
        "a": 1,
        "b:": 2
    };
}

# first

此规则使用 "first" 选项的错误代码示例:

/*eslint comma-style: ["error", "first"]*/

var foo = 1,
    bar = 2;

var foo = ["apples",
           "oranges"];

function bar() {
    return {
        "a": 1,
        "b:": 2
    };
}

此规则使用 "first" 选项的正确代码示例:

/*eslint comma-style: ["error", "first"]*/

var foo = 1, bar = 2;

var foo = 1
    ,bar = 2;

var foo = ["apples"
          ,"oranges"];

function bar() {
    return {
        "a": 1
        ,"b:": 2
    };
}

# exceptions

一个示例用例是仅在 var 语句中强制使用逗号样式。

带有示例 "first", { "exceptions": { … } } 选项的此规则的错误代码示例:

/*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/

var o = {},
    a = [];

带有示例 "first", { "exceptions": { … } } 选项的此规则的正确代码示例:

/*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/

var o = {fst:1,
         snd: [1,
               2]}
  , a = [];

# 何时不使用

如果您的项目不关心强制使用一致的逗号样式,则可以安全地关闭此规则。

Last Updated: 5/13/2023, 8:55:38 PM