module.exports = { "env": { "browser": true, "es2021": true }, "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 12, "sourceType": "module" }, "plugins": [ "@typescript-eslint" ], "rules": { // 代码风格 "camelcase": "error", // 驼峰 // 减少低级错误 "for-direction": "error", // 强制 “for” 循环中更新子句的计数器朝着正确的方向移动 "no-cond-assign": "error", // 禁止条件表达式中出现赋值操作符 "no-dupe-args": "error", // 禁止 function 定义中出现重名参数 "no-dupe-keys": "error", // 禁止对象字面量中出现重复的 key "no-duplicate-case": "error", // 禁止出现重复的 case 标签 "no-empty": "error", // 禁止出现空语句块 "no-sparse-arrays": "error", // 禁用稀疏数组 "no-unreachable": "error", // 禁止在 return、throw、continue 和 break 语句之后出现不可达代码 // 提高代码质量 "array-callback-return": "error", // 强制数组的某些需要返回值的回调函数中有 return 语句。 "block-scoped-var": "error", // 强制把变量的使用限制在其定义的作用域范围内 "default-case": "error", // 要求 switch 语句中有 default 分支 "no-empty-function": "error", // 禁止出现空函数 "no-fallthrough": "error", // 禁止 case 贯穿。 "no-labels": "error", // 禁用标签语句 "no-redeclare": "error", // 禁止多次声明同一变量 "no-return-assign": ["error", "always"], // 禁止在返回语句中赋值 "no-sequences": "error", // 不允许使用逗号操作符 "no-useless-concat": "warn", // 禁止不必要的字符串字面量或模板字面量的连接, "no-eval": "error", // 禁用 eval() "no-use-before-define": ["error", { "functions": false }], // 禁止在变量定义之前使用它们 "complexity": ["error", { "max": 10 }], // 程序中允许的最大环路复杂度 "consistent-return": "error", // 要求 return 语句要么总是指定返回的值,要么不指定 "max-depth": ["error", 5], // 强制块语句的最大可嵌套深度 "max-lines-per-function": ["warn", 50], // 强制函数最大行数 "max-params": ["warn", 4], // 限制函数定义中最大参数个数 "require-await": "error", // 禁止使用不带 await 表达式的 async 函数 // es6 "no-var": "warn", // 要求使用 let 或 const 而不是 var "no-duplicate-imports": "warn", // 禁止重复模块导入 "prefer-destructuring": "warn", // 优先使用数组和对象解构 "prefer-template": "warn", // 要求使用模板字面量而非字符串连接 "no-unused-vars": "off",// 禁止出现未使用过的变量 "@typescript-eslint/no-unused-vars": [ "error", { "argsIgnorePattern": "^_" } ] } };