• JakenVeina@lemm.ee
    cake
    ·
    7 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@programming.dev
      ·
      7 months ago

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch - hasnt it had this forever? Or are you refering to something else?

      • spartanatreyu@programming.dev
        ·
        7 months ago

        Pretty sure they meant match as in pattern matching, not switch as in switch/case/break.

        You can see the proposal here: https://github.com/tc39/proposal-pattern-matching

        • snowe@programming.dev
          ·
          7 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.

        • JakenVeina@lemm.ee
          cake
          ·
          edit-2
          7 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@programming.dev
            ·
            edit-2
            7 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";
            }
            
      • JakenVeina@lemm.ee
        cake
        ·
        edit-2
        7 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"
        };