我们试图在
const
声明位于函数内部和不在函数内部时实现不同的 linting 行为。在顶级范围内,我们希望它们之间有一条线。内部块(if 语句、函数、类等)之间没有线条。
想要的:
const foo = 'foo';
const bar = 'bar';
const baz = ()=> {
const hello = 'hello';
const wolrd = 'world';
}
错误:
//Incorrect, top level should have a space between consts
const foo = 'foo';
const bar = 'bar';
const baz = ()=> {
//incorrect, block scoped should be continuos.
const hello = 'hello';
const wolrd = 'world'
}
我尝试添加到我的 .eslintrc 文件中:
"padding-line-between-statements": [
"error",
{ "blankLine": "never", "prev": "const", "next": "const"},
],
但这将迫使始终删除该线。
行为相同但相反:
{ "blankLine": "always", "prev": "const", "next": "const"},
但在我解释的两种情况下总是成功地提供相同的行为。 我没有确定如何在设置中区分它们
如有任何建议,我们将不胜感激。
谢谢。
首先,根据 https://eslint.org/docs/latest/use/configure/configuration-files,
eslintrc
已弃用。您应该使用最新的 eslint.config.js
/eslint.config.mjs
/eslint.config.cjs
进行配置。
话虽如此,您是否尝试过添加“group”属性?
{
"rules":{
"prefer-const": ["error", { "destructuring": "any", "ignoreReadBeforeAssign": false }],
"padding-line-between-statements": [
"error",
{ "blankLine": "always", "prev": "const", "next": "const", "group": "top-level" },
{ "blankLine": "never", "prev": "const", "next": "const", "group": "block-like" }
]
}
}