寻求ESLint函数体大括号换行规则(类似object-curly-newline)
实现函数体大括号的ESLint换行配置
你可以通过以下几条ESLint规则的组合,实现箭头函数和普通函数体大括号的指定换行效果:
1. 强制大括号的基础换行风格
使用brace-style规则确保左大括号与函数声明在同一行,且左大括号后必须换行,右大括号单独成行(禁止单行大括号写法):
"brace-style": ["error", "1tbs", { "allowSingleLine": false }]
2. 强制大括号内外的空行要求
使用padding-line-between-statements规则,确保左大括号后、右大括号前都有至少一个空行:
"padding-line-between-statements": [ "error", { "blankLine": "always", "prev": "block-start", "next": "*" }, { "blankLine": "always", "prev": "*", "next": "block-end" }, { "blankLine": "any", "prev": "block-end", "next": "block-end" } ]
这条规则的具体作用:
- 左大括号(block-start)之后必须跟至少一个空行
- 右大括号(block-end)之前必须跟至少一个空行
- 连续的右大括号之间允许任意空行(避免嵌套块的格式冲突)
3. 箭头函数强制使用大括号
针对箭头函数,用arrow-body-style规则强制即使空函数体也必须使用大括号,避免出现() => undefined这类省略大括号的写法:
"arrow-body-style": ["error", "always"]
4. 控制空行数量(可选)
如果需要限制大括号内最多只能有一个空行(避免多个连续空行),可以添加no-multiple-empty-lines规则:
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 0 }]
最终效果
配置完成后,代码会被自动格式化符合要求的样式:
// 空箭头函数 const fn = () => { }; // 普通函数 function demo() { console.log('test'); } // 嵌套函数 const nested = () => { return () => { return 1; }; };
内容的提问来源于stack exchange,提问作者Alexander Nenashev
相关产品推荐
相关产品推荐

