@putout/plugin-apply-optional-chaining
v6.0.0
Published
🐊Putout plugin adds ability apply optional chaining
Downloads
62,921
Maintainers
Readme
@putout/plugin-apply-optional-chaining
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
orundefined
), the expression short-circuits with a return value ofundefined
. When used with function calls, it returnsundefined
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
.
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