TypeScript - 在三元条件下执行多个操作

Jai*_*ill 4 typescript

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

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

Jam*_*ger 6

如果您想使用单个函数来完成此操作,很简单:

condition ? console.log("true") : console.log("false");
Run Code Online (Sandbox Code Playgroud)

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

condition 
    ? (() => {
        console.log("true");
        console.log("still true");
    })()
    : (() => {
        console.log("false");
        console.log("still false")
    })();
Run Code Online (Sandbox Code Playgroud)

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


但就我个人而言,我建议不要这样做。我认为它比以下内容更不清楚:

if (condition) {
    console.log("true");
    console.log("still true");
} else {
    console.log("true");
    console.log("still true");
}
Run Code Online (Sandbox Code Playgroud)

  • 在条件之间有很多操作的情况下,是的,我同意使用 if/else。但就我而言,如果为 true,我只执行 2 个操作,如果为 false,则执行一个操作,因此很容易保持干净。 (2认同)