Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Typescript ternary operator short form

I am inside a for loop trying to add up a number. The code is working fine, but I was asking myself if there might be shorter form for the following line:

price = ve.select ? price + ve.price : price;

if ve.select is true, the price is increased by ve.price, if its false, then price stays. I am searching for something similar like this line (I know this code snippet does not work):

price = ve.select ? price + ve.price;
like image 200
Niklas Meier Avatar asked Dec 06 '25 06:12

Niklas Meier


2 Answers

You have several options:

  1. An if statement

    if (ve.select) {
        price += ve.price;
    }
    

    Or if you prefer it on one line:

    if (ve.select) price += ve.price;
    
  2. The conditional operator version you've shown:

    price = ve.select ? price + ve.price : price;
    

    ...but note that it does an unnecessary assignment when ve.select is falsy (though as price is presumably a simple variable that's not an issue; with an object property that might be an accessor property it can matter).

  3. Using the && (logical AND) operator:

    ve.select && price += ve.price;
    

    But note that this is really just an if statement in disguise.

  4. Tamás Sallai's answer providing an alternative use of the conditional operator (price += ve.select ? ve.price : 0;).

like image 108
T.J. Crowder Avatar answered Dec 07 '25 20:12

T.J. Crowder


I'd reverse the ternary and use +=:

price += ve.select ? ve.price : 0;
like image 35
Tamás Sallai Avatar answered Dec 07 '25 20:12

Tamás Sallai