如何配置Prettier使TypeScript函数参数对象类型分行显示?
问题:Prettier能否实现特定的TypeScript函数参数类型格式化?
我有如下格式的TypeScript函数代码:
export const loginService = async ({ email, password }: { email: string; password: string }) => {}
希望将其格式化为如下形式:
export const loginService = async ({ email, password }: { email: string; password: string }): Promise<ApiResponse> => {}
要求保持输入对象在一行,而其类型定义像接口那样拆分为多行,请问能否通过Prettier配置实现?
回答
可以通过Prettier配置实现这种格式化效果,核心是利用Prettier对TypeScript内联类型字面量的换行规则,配合以下配置调整:
调整
printWidth参数:
将printWidth设置为合适的数值(比如默认的80),当内联类型字面量的总长度(包含前面的代码部分)超过这个阈值时,Prettier会自动把类型的属性拆分为多行,而参数对象{ email, password }因长度较短会保持在一行。保留默认的括号空格配置:
确保bracketSpacing: true(默认开启),这样类型字面量的括号内会保留空格,和示例中的格式一致。
需要注意:示例里的返回类型Promise<ApiResponse>需要手动添加,Prettier仅负责代码排版格式化,不会自动补全类型定义。
内容的提问来源于stack exchange,提问作者ishiz
相关产品推荐
相关产品推荐

