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": "^_" }
|
|
]
|
|
}
|
|
};
|