SrdjaNo1
SrdjaNo1

Reputation: 899

Optional chaining doesn't work on Node 16.4

I have tried this syntax in VSCode and Coderpad (both use Node version 16.4).

let x = {}
x?.something.foo

As far as my understanding goes, this code shouldn't throw an error now, but return undefined. The feature optional chaining should be available in Node v14+ but for some reason it doesn't work in my VSCode and also in Coderpad.

Thought why?

Upvotes: 1

Views: 2804

Answers (1)

robertklep
robertklep

Reputation: 203241

x is an existing object for which you want to allow the something property to be undefined. Hence, the correct syntax should be x.something?.foo

The syntax x?.something.foo means: allow an object x to be undefined, but if it isn't, return the value of the property chain something.foo. Since in this case x is defined, but x.something isn't, you'll get an error (unless you use x?.something?.foo).

Upvotes: 2

Related Questions