使用 Eslint,我希望允许整个对象位于 1 行上,或者允许大括号 + 每个属性位于单独的行上,即:
{ a: 1, b: 2 };
{
a: 1,
b: 2,
};
但是,Eslint 的自动修复正在生成并允许这样做:
{
a: 1, b: 2,
};
有规则可以防止这种情况发生吗?
我使用的相关规则是:
'object-curly-newline': [2, {
minProperties: 4,
consistent: true,
}],
'object-property-newline': [2, { allowAllPropertiesOnSameLine: true }],
您必须从
allowAllPropertiesOnSameLine: true
中删除 object-property-newline
才能实现您的目标。
据我所知,此规则(
object-property-newline
)没有任何附加选项来设置应执行换行的对象中属性的最小数量,但默认情况下,此规则有条件地应用最小数量的换行符。 “2个属性”。也就是说,如果对象只有 1 个属性,则不应用该规则,但如果属性数量较多,则应用该规则。
{
"object-curly-newline": ["error", {
minProperties: 4,
consistent: true,
}],
"object-property-newline": "error"
}
错误代码示例:
const a = {a: 1, b: 2}
const b = {a: 1}
正确代码示例:
const a = {
a: 1,
b: 2
}
const b = {a: 1}