如何通过ESLint强制含3个及以上属性的对象每个属性单独换行?
解决ESLint对象多属性强制单独换行的问题
object-curly-newline规则只负责控制对象大括号的换行逻辑,不会强制每个属性单独成行——这就是你修复后仍有多个属性挤在同一行的原因。要实现“属性数≥3时每个属性单独换行”的要求,需要配合使用object-property-newline规则,同时正确配置两者的参数。
在你的ESLint配置文件(如.eslintrc.js)中添加以下规则:
module.exports = { // 其他配置项... rules: { // 控制对象大括号的换行时机 'object-curly-newline': [ 'error', { ObjectExpression: { minProperties: 3, multiline: true, consistent: true }, ObjectPattern: { minProperties: 3, multiline: true, consistent: true } } ], // 强制每个属性单独占一行 'object-property-newline': [ 'error', { allowMultiplePropertiesPerLine: false } ] } };
规则说明
object-curly-newline:当对象的属性数量≥3时,强制大括号前后换行,并且保持大括号内部的换行一致性(不会出现单边换行的情况)。object-property-newline:通过allowMultiplePropertiesPerLine: false直接禁止多个属性出现在同一行,确保每个属性单独成行。
配置完成后,ESLint自动修复会将你的代码调整为符合要求的格式:
const myObject = { property1: 'value1', property2: 'value2', property3: 'value3', };
内容的提问来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

