eslint/accessor-pairs Pedantic ​
What it does ​
Enforces getter/setter pairs in objects and classes.
Why is this bad? ​
It's a common mistake in JavaScript to create an object with just a setter for a property but never have a corresponding getter defined for it. Without a getter, you cannot read the property, so it ends up not being used.
Examples ​
Examples of incorrect code for this rule:
var o = {
set a(value) {
this.val = value;
}
};
class C {
set a(value) {
this.val = value;
}
}Examples of correct code for this rule:
var o = {
set a(value) {
this.val = value;
},
get a() {
return this.val;
}
};
class C {
set a(value) {
this.val = value;
}
get a() {
return this.val;
}
}Configuration ​
This rule accepts a configuration object with the following properties:
enforceForClassMembers ​
type: boolean
default: true
Enforce the rule for class members.
enforceForTSTypes ​
type: boolean
default: false
Enforce the rule for TypeScript interfaces and types.
getWithoutSet ​
type: boolean
default: false
Report a getter without a setter.
setWithoutGet ​
type: boolean
default: true
Report a setter without a getter.
How to use ​
To enable this rule using the config file or in the CLI, you can use:
{
"rules": {
"accessor-pairs": "error"
}
}oxlint --deny accessor-pairs