{
  "extends": "eslint:recommended",
  "rules": {
    // 声明
    "no-use-before-define": "error",
    //禁止定义前使用

    // 对象
    "no-dupe-keys": "error",
    // 禁止在对象字面量中出现重复的键
    "quote-props": [
      "error",
      "as-needed"
    ],
    // 对象属性只在需要的时候加引号

    // 字符串
    "quotes": [
      "error",
      "double",
      {
        "allowTemplateLiterals": true
      }
    ],
    // 字符串开头和结束使用双引号
    "no-useless-concat": "error",
    // 禁止没有必要的字符拼接
    "no-useless-escape": "error",
    // 禁用不必要的转义

    // 函数
    "no-dupe-args": "error",
    // 禁止在 function 定义中出现重复的参数
    "space-before-function-paren": "error",
    // 函数括号前必须要有空格

    // 变量
    "no-undef": "error",
    // 禁止使用未声明的变量

    // 比较运算符 & 相等运算符
    "eqeqeq": "error",
    // 使用 === 和 !== 代替 == 和 !=
    "no-unneeded-ternary": "error",
    //禁止可以在有更简单的可替代的表达式时使用三元操作符

    // 条件
    "default-case": "error",
    // 要求 Switch 语句中有 Default 分支
    "no-else-return": "error",
    // 如果 if 块中包含了一个 return 语句,else 块就成了多余的了。可以将其内容移至块外

    // 代码块
    "brace-style": [
      "error",
      "1tbs",
      {
        "allowSingleLine": true
      }
    ],
    // 代码块左括号紧跟上一行结束
    "curly": [
      "error",
      "multi-line"
    ],
    // if、else if、else、for、while强制使用大括号,但允许在单行中省略大括号

    // 注释
    "spaced-comment": "error",
    // 注释前有空格

    // 空白
    "indent": [
      "error",
      4,
      {
        "SwitchCase": 1
      }
    ],
    // 缩进控制4空格
    "no-mixed-spaces-and-tabs": "error",
    // 禁止使用 空格 和 tab 混合缩进
    "space-before-blocks": [
      "error",
      "always"
    ],
    // 语句块之前的需要有空格
    "space-infix-ops": ["error", {
      "int32Hint": false
    }], // 要求中缀操作符周围有空格,设置 int32Hint 选项为 true (默认 false) 允许 a|0 不带空格
    "no-trailing-spaces": ["error", {
      "skipBlankLines": true
    }], // 禁用行尾空格
    "key-spacing": ["error", {
      "afterColon": true
    }], // 要求在对象字面量的冒号和值之间存在至少有一个空格


    // 逗号
    "comma-style": "error",
    // 逗号必须放在行末
    "comma-dangle": [
      "error",
      "never"
    ],
    // 多行对象字面量中要求不要拖尾逗号
    "comma-spacing": [
      "error",
      {
        "before": false,
        "after": true
      }
    ],
    //在变量声明、数组字面量、对象字面量、函数参数 和 序列中禁止在逗号前使用空格,要求在逗号后使用一个或多个空格


    // 分号
    "semi": "error",
    //不得省略语句结束的分号
    "semi-spacing": [
      "error",
      {
        "before": false,
        "after": true
      }
    ],
    //禁止分号周围的空格
    "no-extra-semi": "error",
    // 禁用不必要的分号


    // 类型转换
    "no-extra-boolean-cast": "error",
    // 禁止不必要的布尔类型转换


    // 其他最佳实践或规范
    "no-unexpected-multiline": "error",
    // 禁止使用令人困惑的多行表达式
    "no-unreachable": "error",
    // 禁止在 return、throw、continue 和 break 语句后出现不可达代码
    "valid-typeof": "error",
    // 强制 typeof 表达式与有效的字符串进行比较
    "no-new-wrappers": "error"
    // 禁止通过 new 操作符使用 String、Number 和 Boolean
  },
  "globals": {
    "window": true,
    "$": true,
    "WebUI": true,
    "BI": true,
    "BICst": true,
    "Data": true,
    "Fix": true,
    "module": true
  }
}