• @[email protected]
    link
    fedilink
    87 months ago

    Until JS supports switch expressions, nested ternaries will continue to be the most effective way to write multi-state conditionals.

    Also, stop using linting tools that prioritize consistency over human readability, and then complaining that the code they generate is not easily-readable by humans.

        • @CameronDev
          link
          36 months ago

          Your probably right, that looks quite desirable.

        • snoweA
          link
          16 months ago

          they also said switch expressions, which indicates they want the switch statement to be settable directly to a variable with whatever the return type of the switch is.

          • @spartanatreyu
            link
            26 months ago

            Match already returns the value which can be thrown into a variable.

        • @[email protected]
          link
          fedilink
          1
          edit-2
          6 months ago

          Nah, I meant switch, as that’s what it’s called in C#-land. See above.

          That proposal for matching looks interesting, but not quite the same, no.

          • @spartanatreyu
            link
            5
            edit-2
            6 months ago

            Are you sure?

            Your C# example:

            var output = input switch
            {
                null    => "Null",
                0       => "Zero",
                > 0     => "Positive",
                _       => "Negative"
            };
            

            JS proposal for match:

            const output = match input {
                when null:    "Null";
                when 0:       "Zero";
                if input > 0: "Positive";
                default:      "Negative";
            }
            
      • @[email protected]
        link
        fedilink
        2
        edit-2
        6 months ago

        Yeah, a switch expression is different than a switch statement. I’m not actually sure how many languages actually have them, but in C# its…

        var output = input switch
        {
            null    => "Null",
            0       => "Zero",
            > 0     => "Positive",
            _       => "Negative"
        };