Skip to content
← Back to rules

eslint/accessor-pairs 严格检查

An auto-fix is available for this rule.

它的作用

强制在对象和类中使用存取器对(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

参考资料