Skip to content
← Back to rules

eslint/accessor-pairs Pedantic

作用

强制在对象和类中使用 getter/setter 成对出现。

为什么不好?

在 JavaScript 中,创建一个只有 setter 而没有对应 getter 的对象是一个常见错误。 如果没有 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

报告没有 setter 的 getter。

setWithoutGet

type: boolean

default: true

报告没有 getter 的 setter。

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "accessor-pairs": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "accessor-pairs": "error",
  },
});
bash
oxlint --deny accessor-pairs

版本

此规则在 v1.33.0 中添加。

参考资料