是否有eslint(或typescript-eslint)规则要求每个var/let/const语句出现在自己的行上?我试过one-var
、one-var-declaration-per-line
和max-statements-per-line
。从我的实验来看,max-statements-per-line
过于激进,针对我们常用的一些单线模式。另外两条规则不能正确捕获一行中的多个var语句。还有其他规则或配置我忽略了吗?
特定例子:
let foo: string; let bar: string;
let blah = function blah() { console.log('woot'); };
.eslintrc:
{
"rules": {
// "max-statements-per-line": "error",
"one-var": [ "error", "never" ],
"one-var-declaration-per-line": [ "error", "always" ]
}
}
没有错误报告给出这个配置。取消注释max-statements-per-line
规则将标记这两行。我想要一个规则集,标记第一行,但允许第二行。
您列出的规则仅适用于单个语句(即在中间放置;
无效的东西)。这里的是单行中的多个语句。如果你这样做的话,效果也差不多:
console.log('foo'); console.log('bar');
您可以使用以下命令禁止任何包含两个语句的行:
"max-statements-per-line": ["error", { "max": 1 }],
提示:prettier
格式化程序涵盖了很多这类问题,你可以把它集成到eslint中,这样它看到的任何格式化不当的东西都是一个检查错误。这个问题,所有类型的空格/缩进问题,可换行,以及更多的都是"免费的"。
扩展plugin:prettier/recommended
禁用了一堆其他通常会冲突的规则,所以你可以从eslint配置中省去很多东西,比如quotes
,semi
,arrow-parens
等,因为它们无论如何都会被禁用。
{
"parser": "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint/eslint-plugin",
"@typescript-eslint"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
// prettier configs must come last to disable conflicting rules!
"prettier",
"plugin:prettier/recommended"
]
"rules": {
// ...
}
}