【问题标题】:TypeScript - Perform multiple actions in a ternary condition [duplicate]TypeScript - 在三元条件下执行多个操作 [重复]
【发布时间】:2018-02-09 14:55:07
【问题描述】:

是否可以在三元条件下执行多个操作?类似于以下内容(不起作用):

condition ? () => {
    // Perform multiple actions within this delegate function if the condition is true
} : // Perform an action if the condition is false;

【问题讨论】:

  • 避免对过于复杂的事情使用三元运算符。只需使用 if-else 语句即可。三元运算符最适合用于简单和小型的条件赋值。
  • 这不是一个容易找到的问题,在提问之前测试它甚至更容易......
  • 很好的发现,谢谢@lexith!我事先做了一个快速搜索,但没有找到任何关于 TypeScript 的信息。我现在可以工作了。

标签: typescript


【解决方案1】:

如果你想用一个函数来做这件事,很简单:

condition ? console.log("true") : console.log("false");

如果你想调用多个函数,那就有点复杂了:

condition 
    ? (() => {
        console.log("true");
        console.log("still true");
    })()
    : (() => {
        console.log("false");
        console.log("still false")
    })();

这是因为当你有一个三元组时,它会立即调用块内的任何内容。所以如果你想调用一个函数,你需要用()来执行那个函数。


不过,我个人建议不要这样做。我认为它远不如:

if (condition) {
    console.log("true");
    console.log("still true");
} else {
    console.log("true");
    console.log("still true");
}

【讨论】:

  • 刚试过这样包装,效果很好,谢谢!你打败了我哈哈。
  • 在条件之间有很多动作的情况下,是的,我同意使用 if/else。但就我而言,如果为真,我只执行 2 个操作,如果为假,则执行单个操作,因此很容易保持干净。
猜你喜欢
  • 2020-06-13
  • 2021-12-19
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 2017-06-30
  • 2020-05-18
  • 2020-08-04
相关资源
最近更新 更多