search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

0 answers
Q&A NULL-safe property access & conditional assignment in EcmaScript 6+

0

Is there an operator that would allow the following logic (on line 4) to be expressed more succinctly?

const query = succeed => (succeed? {value: 4} : undefined);

let value = 3;
for (let x of [true, false]) {
  try { value = query(x).value; } catch {} // 



The output is 4. If there is no .value field in the response, I want to keep the old value / don´t want the assignment to execute.

Notes:
  • If value = query(x)?.value were used, it would assign undefined to value
  • There is also the ??= operator, however it isn´t useful here, value ??= ... would only assign if value is currently null/undefined
  • In CoffeeScript, value = query(x).value if query(x)?.value? achieves the desired behaviour without try/catch, although it's repetitive
  • value = query(x)?.value ?? value works but isn't conditional assignment, the assignment still happens, if we were setting an Object's property the setter would be called unnecessarily. It is also repetitive
  • This logic cannot be abstracted into a function i.e. value = smart(query(x), "value"), the assignment can´t be made conditional that way
Keywords?

null propagation, existence operator

Your Answer
submit

0 answers

Popular tool

vc9-vc14 (32+64 bit) runtime library collection (link below)

vc9-vc14 (32+64 bit) runtime library collection (link below)

Download the collection of runtime libraries required for phpStudy installation

VC9 32-bit

VC9 32-bit

VC9 32-bit phpstudy integrated installation environment runtime library

PHP programmer toolbox full version

PHP programmer toolbox full version

Programmer Toolbox v1.0 PHP Integrated Environment

VC11 32-bit

VC11 32-bit

VC11 32-bit phpstudy integrated installation environment runtime library

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use