基线层
规则全部为 ESLint 内置规则(不依赖任何插件),以 Neostandard 的社区基线为主,覆盖代码安全与潜在错误,随任意配置默认启用。
标记说明:🔧 可通过
eslint --fix自动修复 · 💡 在编辑器中提供修复建议。
严格相等(eqeqeq) 🔧 💡
约定使用 === / !==,避免隐式类型转换带来的意外。
不推荐
js
const valid = a == 1推荐
js
const valid = a === 1禁用 var(no-var) 🔧
约定用 const / let 取代 var。
不推荐
js
var count = 0推荐
js
let count = 0优先 const(prefer-const) 🔧
从未重新赋值的变量约定使用 const。
不推荐
js
let name = 'lintspec'推荐
js
const name = 'lintspec'对象简写(object-shorthand) 🔧
约定使用对象属性与方法简写。
不推荐
js
const user = { id: id, getName: function () {} }推荐
js
const user = { id, getName() {} }禁止抛出字面量(no-throw-literal)
约定只抛出 Error 对象,不抛出字面量。
不推荐
js
throw 'something went wrong'推荐
js
throw new Error('something went wrong')禁止 Yoda 条件(yoda) 🔧
约定条件表达式变量在前。
不推荐
js
if (1 === status) {
retry()
}推荐
js
if (status === 1) {
retry()
}禁止无意义的重命名(no-useless-rename) 🔧
约定不要把解构 / 导入 / 导出重命名为同名。
不推荐
js
const { id: id } = user推荐
js
const { id } = user禁止未使用变量(no-unused-vars) 💡
约定不保留未使用的局部变量。函数参数和 catch 绑定不在默认检查范围内,避免为了规则批量改签名或重命名。
不推荐
js
const unused = createValue()
export const used = 1推荐
js
export const used = createValue()禁止 void 表达式(no-void)
不允许用 void 丢弃函数返回值,尤其不能用 void promise() 把异步调用伪装成已处理。
不推荐
ts
void saveChanges()推荐
ts
await saveChanges()若确实要忽略 Promise,应显式说明错误处理策略,例如使用 catch。TypeScript 项目建议同时开启 typescript.typeAware。
文件最大行数(max-lines)
约定单个文件不宜过长,过长往往意味着职责过多、应当拆分。由 maxLines 选项控制上限(默认 500 行,统计时跳过空行与注释),超出仅 warn 提示、不阻断。
不推荐
js
// utils.js —— 把所有工具函数塞进一个文件(620 行)
export function a() {}
export function b() {}
// …此处省略 600+ 行推荐
js
// 按职责拆成多个小文件
import { a } from './utils/a'
import { b } from './utils/b'通过 maxLines 选项调整上限或关闭(详见 配置项总览):
js
// eslint.config.js
export default lintspec({
maxLines: 800, // 放宽到 800 行
// maxLines: false, // 或彻底关闭
})