Socket
Socket
Sign inDemoInstall

@putout/plugin-apply-optional-chaining

Package Overview
Dependencies
0
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @putout/plugin-apply-optional-chaining

🐊Putout plugin adds ability apply optional chaining


Version published
Weekly downloads
16K
decreased by-13.93%
Maintainers
1
Install size
6.22 kB
Created
Weekly downloads
 

Readme

Source

@putout/plugin-apply-optional-chaining NPM version

The optional chaining operator (?.) enables you to read the value of a property located deep within a chain of connected objects without having to check that each reference in the chain is valid.

The ?. operator is like the . chaining operator, except that instead of causing an error if a reference is nullish (null or undefined), the expression short-circuits with a return value of undefined. When used with function calls, it returns undefined if the given function does not exist.

This results in shorter and simpler expressions when accessing chained properties when the possibility exists that a reference may be missing. It can also be helpful while exploring the content of an object when there's no known guarantee as to which properties are required.

(c) MDN

🐊Putout plugin applies optional chaining. Backward to convert-optional-to-logical.

Install

npm i @putout/plugin-apply-optional-chaining

Rule

{
    "rules": {
        "apply-optional-chaining/use": "on",
        "apply-optional-chaining/assign": "off"
    }
}

use

Checkout out in 🐊Putout Editor.

❌ Example of incorrect code

const result = hello && hello.world;

if (typeof a === 'function' && a(1, 2))
    alert();

✅ Example of correct code

const result = hello?.world;

if (a?.(1, 2))
    alert();

assign

Proposal to add support for optional chaining on the left of assignment operators: a?.b = c.

(c) Proposal of Optional Chaining Assignment

Disabled by default. Checkout out in 🐊Putout Editor.

❌ Example of incorrect code

if (a) {
    a.b = 5;
}

if (a)
    a.b = 5;

a && (a.b = 5);

✅ Example of correct code

a?.b = 5;

License

MIT

Keywords

FAQs

Last updated on 27 Sep 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc