unicorn/no-object-as-default-parameter
Disallow an object literal with properties as the default value of a parameter
A default value is only used when the whole argument is missing. As soon as the caller passes an object with even one property, the default object is dropped and its other properties are undefined. Destructure the parameter and give each property its own default.
An empty object, options = {}, is allowed.
Configure#
Off by default. To turn it on:
bunfig.toml
[lint.rules]
"unicorn/no-object-as-default-parameter" = "error" # or "warn"Examples#
example.js1 problem
function connect(options = { retries: 3, secure: true }Do not use an object literal as default for parameter options.) {
return open(options.retries, options.secure);
}
connect({ retries: 5 }); // options.secure is undefinedexample.jsNo problems
function connect({ retries = 3, secure = true } = {}) {
return open(retries, secure);
}
connect({ retries: 5 }); // secure is true