eslint/grouped-accessor-pairs スタイル
何をするか
オブジェクトリテラルおよびクラス内のアクセサペアをグループ化することを要求します
なぜ問題か
ゲッターまたはセッターのペアをオブジェクトやクラス定義のどこにでも定義することは可能ですが、同じプロパティのアクセサ関数をグループ化することはベストプラクティスとされています。
例
このルールに対して 誤り のコード例:
js
const foo = {
get a() {
return this.val;
},
b: 1,
set a(value) {
this.val = value;
},
};このルールに対して 正しい コード例:
js
const foo = {
get a() {
return this.val;
},
set a(value) {
this.val = value;
},
b: 1,
};getBeforeSet オプションを使用した場合の 誤り のコード例:
js
const foo = {
set a(value) {
this.val = value;
},
get a() {
return this.val;
},
};getBeforeSet オプションを使用した場合の 正しい コード例:
js
const foo = {
get a() {
return this.val;
},
set a(value) {
this.val = value;
},
};setBeforeGet オプションを使用した場合の 誤り のコード例:
js
const foo = {
get a() {
return this.val;
},
set a(value) {
this.val = value;
},
};setBeforeGet オプションを使用した場合の 正しい コード例:
js
const foo = {
set a(value) {
this.val = value;
},
get a() {
return this.val;
},
};設定
1 番目のオプション
type: "anyOrder" | "getBeforeSet" | "setBeforeGet"
"anyOrder"
アクセサの順序は任意です。これはデフォルトです。
"getBeforeSet"
ゲッターはセッターの前に来なければなりません。
"setBeforeGet"
セッターはゲッターの前に来なければなりません。
2 番目のオプション
このオプションは以下のプロパティを持つオブジェクトです:
enforceForTSTypes
type: boolean
default: false
enforceForTSTypes が有効になると、このルールは TypeScript インターフェースや型エイリアスにも適用されます。
誤り の TypeScript コード例:
ts
interface Foo {
get a(): string;
someProperty: string;
set a(value: string);
}
type Bar = {
get b(): string;
someProperty: string;
set b(value: string);
};正しい の TypeScript コード例:
ts
interface Foo {
get a(): string;
set a(value: string);
someProperty: string;
}
type Bar = {
get b(): string;
set b(value: string);
someProperty: string;
};使用方法
設定ファイルまたは CLI でこのルールを 有効化 するには、次のように使用できます:
json
{
"rules": {
"grouped-accessor-pairs": "error"
}
}bash
oxlint --deny grouped-accessor-pairs