A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.npmjs.com/package/babel-plugin-transform-optional-chaining below:

babel-plugin-transform-optional-chaining - npm

babel-plugin-transform-optional-chaining

The Optional Chaining Operator allows you to handle properties of deeply nested objects without worrying about undefined intermediate objects.

Example Accessing deeply nested properties

const obj = {

  foo: {

    bar: {

      baz: 42,

    },

  },

};

 

const baz = obj?.foo?.bar?.baz; 

 

const safe = obj?.qux?.baz; 

 

obj?.foo.bar?.baz; 

                   

Calling deeply nested functions

const obj = {

  foo: {

    bar: {

      baz() {

        return 42;

      },

    },

  },

};

 

const baz = obj?.foo?.bar?.baz(); 

 

const safe = obj?.qux?.baz(); 

const safe2 = obj?.foo.bar.qux?.(); 

 

const willThrow = obj?.foo.bar.qux(); 

 

function test() {

  return 42;

}

test?.(); 

 

exists?.(); 

Constructing deeply nested classes

const obj = {

  foo: {

    bar: {

      baz: class {

      },

    },

  },

};

 

const baz = new obj?.foo?.bar?.baz(); 

 

const safe = new obj?.qux?.baz(); 

const safe2 = new obj?.foo.bar.qux?.(); 

 

const willThrow = new obj?.foo.bar.qux(); 

 

class Test {

}

new Test?.(); 

 

new exists?.(); 

Installation

npm install --save-dev babel-plugin-transform-optional-chaining

Usage Via .babelrc (Recommended)

.babelrc

{

  "plugins": ["transform-optional-chaining"]

}

Via CLI

babel --plugins transform-optional-chaining script.js

Via Node API

require("babel-core").transform("code", {

  plugins: ["transform-optional-chaining"]

});

References

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4