Skip to content
← Back to rules

eslint/accessor-pairs 厳格なルール

何をするか

オブジェクトおよびクラス内のゲッター/セッターのペアを強制します。

なぜ問題なのか

JavaScript では、プロパティに対してセッターのみを定義し、対応するゲッターを定義しないという誤りがよくあります。 ゲッターがなければ、そのプロパティにアクセスできず、結果として使われないままになります。

このルールに対する誤ったコードの例:

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

ゲッターがないセッターを報告する。

使用方法

このルールを構成ファイルまたは CLI で有効化するには、次のようにします:

json
{
  "rules": {
    "accessor-pairs": "error"
  }
}
bash
oxlint --deny accessor-pairs

参考資料