eslint/accessor-pairs 严格检查
它的作用
强制在对象和类中使用存取器对(getter/setter 配对)。
为什么这是个问题?
在 JavaScript 中,一个常见错误是为某个属性只定义了设置器(setter),但从未定义对应的获取器(getter)。如果没有获取器,就无法读取该属性,因此该属性实际上无法被使用。
示例
以下为错误代码示例:
js
var o = {
set a(value) {
this.val = value;
},
};
class C {
set a(value) {
this.val = value;
}
}以下为正确代码示例:
js
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;
}
}配置
此规则接受一个配置对象,包含以下属性:
enforceForClassMembers
type: boolean
default: true
对类成员强制执行此规则。
enforceForTSTypes
type: boolean
default: false
对 TypeScript 接口和类型强制执行此规则。
getWithoutSet
type: boolean
default: false
报告存在获取器但没有对应设置器的情况。
setWithoutGet
type: boolean
default: true
报告存在设置器但没有对应获取器的情况。
如何使用
要通过配置文件或命令行启用此规则,可以使用:
json
{
"rules": {
"accessor-pairs": "error"
}
}bash
oxlint --deny accessor-pairs