将 if 语句放在一行更漂亮
Posted
技术标签:
【中文标题】将 if 语句放在一行更漂亮【英文标题】:Prettier putting if statement on one line 【发布时间】:2019-06-16 23:41:01 【问题描述】:没有花括号的 if 语句格式更漂亮。
这意味着:
function getErrorMessage(response)
let errorMessage = null;
if (!response.originalError.response)
errorMessage = 'network error';
else
errorMessage = response.originalError.response.data.errorMessage;
return errorMessage;
变成这样:
function getErrorMessage(response)
let errorMessage = null;
if (!response.originalError.response) errorMessage = 'network error';
else errorMessage = response.originalError.response.data.errorMessage;
return errorMessage;
这远更不可读。
有没有办法禁用它?
【问题讨论】:
不是您的问题的答案(我赞成),但是通过完全消除您的errorMessage
变量,您的函数可以变得更简单、更具可读性(并且效率更高)。 gist.github.com/flimzy/78be389b85d37ba7536daf5e858b8ca7
是的,我同意,只是想用我的代码作为说明
可能不是您想听到的,但是添加花括号怎么样? IMO 他们应该在那里。
是的,我添加了花括号。那解决了它。但我不明白为什么 prettier 会做出如此丑陋的格式
@OliverWatkins 可能是被动攻击性的“我的方式或高速公路”的案例,以强制使用多余的paratheses 的风格与(这是我的邪恶假设)嘲笑替代方案相结合。这就像说你不必在单语句上使用花括号,然后添加一个“证明”它是错误的,但这就是你会得到的丑陋 .这是一个很棒的包,所以很遗憾他们如此不灵活。详情见答案。
【参考方案1】:
正如在类似的question 中询问的那样,事实证明answer 是您不能也不会能够。
至于一般意义上的 WFT,嗯...显然,自以为是并不意味着 在许多人看来受到尊重和深思熟虑。这意味着它正在执行作者的意见。
因此,令人惊讶的是,出乎意料的不是缺乏可配置性,而是根本没有任何选项可供设置!去看看...有人应该创建一个名为 EvenPrettier 或 FexiblyPrettier 的新包,并提供更多选项。如果我知道怎么做,我就会去做。
【讨论】:
【参考方案2】:我终于用 Beautify - HookyQR 扩展了 vscode https://marketplace.visualstudio.com/items?itemName=HookyQR.beautify
示例设置
文件:.jsbeautifyrc
"brace_style": "collapse,preserve-inline",
"max_preserve_newlines": 2,
"end_with_newline": false
示例代码
文件:a.js
function dfs(start)
if (start > n)
return;
ans.push(start);
for (let i = 0; i <= 9; i++)
dfs(start * 10 + i);
【讨论】:
以上是关于将 if 语句放在一行更漂亮的主要内容,如果未能解决你的问题,请参考以下文章