I am wondering if the presence of the second optional chaining has any negative impact whatsoever:
let flag = somePotentialNullObj?.someNumProp > 0 && somePotentialNullObj?.someOtherProp;
The second optional chaining is not needed, this works exactly the same:
let flag = somePotentialNullObj?.someNumProp > 0 && somePotentialNullObj.someOtherProp;
If it gets afters the &&, somePotentialNullObj can't be null or undefined, we shouldn't have to check again with ?, right?
Agree with the OP that optional chaining is needed in the right half of the expression.
If someProp is missing, the first ?. skips the comparison and evaluates to undefined. That short-circuits the &&. If we get to the second half of the && expression, we must've found someProp.
I don't know how the interpreter optimizes either OP proposal. On the surface, the second proposal would do less computation on average.