如何让Prettier同时支持函数参数单行与多行格式?
解决Prettier同时保留函数参数单行与多行格式的问题
针对你遇到的Prettier强制合并多行函数参数的问题,以下是几种可行的解决方案:
方法1:用// prettier-ignore精准控制单个函数
在需要保留多行参数的函数上方添加注释,让Prettier跳过该函数的格式化:
// prettier-ignore @Post('/userWallet') async updateUserWallet( @Param('user_id') user_id: string, @Param('delta') delta: number, @Param('foo') bar: number, ) { ... }
这种方式无需改动全局配置,能精准控制特定函数,但需要逐个添加注释,适合少量需要保留多行的场景。
方法2:借助第三方插件尊重手动换行
如果需要批量保留手动设置的多行参数格式,可以使用prettier-plugin-preserve-line-breaks插件,它会让Prettier尊重你手动添加的换行:
- 安装插件:
npm install prettier-plugin-preserve-line-breaks --save-dev
- 在Prettier配置文件(如
.prettierrc或prettier.config.js)中配置插件:
{ "printWidth": 120, "plugins": ["prettier-plugin-preserve-line-breaks"] }
配置后,单行参数只要不超过printWidth就会保持单行,你手动换行的参数也会被保留为多行。
方法3:调整printWidth(不推荐,会影响全局格式)
如果将printWidth设置为小于你多行参数单行总长度的数值,Prettier会自动将参数换行。但这种方式会导致其他原本能放在单行的代码被强制换行,破坏全局格式的一致性,因此不推荐。
补充说明
Prettier的核心设计是统一代码风格,默认不会完全尊重手动换行。因此如果需要灵活兼顾两种格式,要么用prettier-ignore做精准控制,要么借助第三方插件实现需求。
内容的提问来源于stack exchange,提问作者Neo.Mxn0
相关产品推荐
相关产品推荐

