【问题标题】:Why does this trigger comma-dangle rule in eslint?为什么这会在 eslint 中触发 comma-dangle 规则?
【发布时间】:2016-01-27 02:59:11
【问题描述】:

这在我看来是正确的,但为什么 eslint 显示违反规则,在最后一个属性“凭据”末尾缺少尾随逗号 comma-dangle

  dispatch({
    type: LOGIN_USER,
    payload: credentials
  });

.eslintrc

{
  "extends": "airbnb",
  "globals": {
    "__DEV__": true
  },
  "rules": {
    "react/jsx-quotes": 0,
    "jsx-quotes": [2, "prefer-double"]
  }
}

【问题讨论】:

    标签: eslint


    【解决方案1】:

    基于airbnb 配置,规则设置如下 comma-dangle: [2, "always-multiline"].

    据此,expected 代码是

      dispatch({
        type: LOGIN_USER,
        payload: credentials,
      });
    

    它期望在末尾有一个,

    更多规则信息:http://eslint.org/docs/rules/comma-dangle

    【讨论】:

    • 这似乎是一个奇怪的规则,其背后的风格原因是什么?
    • 有很多选择。您始终可以将选项设置为never。这样它就适用于您的代码。
    • from react up and running "悬空的逗号(如 let a = [1,] 而不是 let a = [1])可能被认为是错误的(因为它们曾经是语法错误某些浏览器的时间),但它们也很方便,因为它有助于维护源代码控制“责备”并且更容易更新“
    • this话题解释了一下
    【解决方案2】:

    使用下面的规则来避免它

    rules: {
        'comma-dangle': ['error', 'never']
      }
    

    //或

     "comma-dangle": ["error", {
            "arrays": "never",
            "objects": "never",
            "imports": "never",
            "exports": "never",
            "functions": "never"
        }]
    

    参考:https://eslint.org/docs/rules/comma-dangle

    【讨论】:

      【解决方案3】:

      我使用以下组合(这对我有用)

      [1] .eslintrc.json

      "rules": {        
              "comma-dangle": [2, "always-multiline"]         
          }
      

      [2] JsPrettier |更漂亮

      "trailingComma": "all"
      

      结果

      dispatch({
        type: LOGIN_USER,
        payload: credentials,
      });
      

      【讨论】:

        猜你喜欢
        • 2021-09-19
        • 2020-10-05
        • 2021-03-17
        • 1970-01-01
        • 1970-01-01
        • 2022-01-27
        • 1970-01-01
        • 2014-09-01
        • 1970-01-01
        相关资源
        最近更新 更多