如何避免 VsCode Prettier 用箭头函数破坏链函数?

Posted

技术标签:

【中文标题】如何避免 VsCode Prettier 用箭头函数破坏链函数?【英文标题】:How to avoid VsCode Prettier to break chain functions with arrow functions? 【发布时间】:2020-09-21 13:50:23 【问题描述】:

我正在使用 VSCode 和 Prettier,当我们使用内部箭头函数链接函数调用时,就像 lodash 链一样:

let total = _(credits).filter(c => c.active).sumBy(c => c.fee);

更漂亮的闯入:

discount = _(credits)
    .filter(c => c.active)
    .sumBy(c => c.fee);

当我们使用strings代替箭头函数时,它不会分成几行,例如:

let total = _(credits).filter('c => c.active').sumBy('c => c.fee');

我正在与.prettierrc"prettier": "^2.0.5" 合作:


  "singleQuote": true,
  "trailingComma": "all",
  "printWidth": 280,
  "tabWidth": 4,
  "arrowParens": "avoid",

函数内部有箭头函数时,如何避免用prettier换行?

【问题讨论】:

【参考方案1】:

没有选项可以覆盖方法链中断行为。在 2.0 版中,Prettier 使用新的启发式方法来确定何时中断方法链。您可以在https://github.com/prettier/prettier/pull/6685/files#diff-207f1974ddc06ae7b574152f9afc878dR893 中看到启发式。

如果参数不重要,Prettier 会中断方法链。字符串文字被认为是“平凡的”,但箭头函数表达式被认为是“非平凡的”。这就是当您将字符串与箭头函数作为参数传递时,您会看到不同行为的原因。

【讨论】:

以上是关于如何避免 VsCode Prettier 用箭头函数破坏链函数?的主要内容,如果未能解决你的问题,请参考以下文章

mac版本最全的vscode配置prettier工具

如何配置VSCode中的Prettier和ESLint标准

当我使用 prettier 和 ESLint 在 VSCode 上保存代码时如何设置自动关闭?

VSCode Prettier 没有格式化 PHP

VSCode Prettier 扩展 vs 命令行 Prettier

在 VSCode 上安装 Prettier