ESLint规则要求每行一个变量声明语句?



是否有eslint(或typescript-eslint)规则要求每个var/let/const语句出现在自己的行上?我试过one-varone-var-declaration-per-linemax-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": {
// ...
}
}

相关内容

  • 没有找到相关文章