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;
},
};구성
첫 번째 옵션
형식: "anyOrder" | "getBeforeSet" | "setBeforeGet"
"anyOrder"
액세서는 어떤 순서로도 가능합니다. 이것이 기본값입니다.
"getBeforeSet"
게터는 세터보다 앞에 와야 합니다.
"setBeforeGet"
세터는 게터보다 앞에 와야 합니다.
두 번째 옵션
이 옵션은 다음 속성을 가진 객체입니다:
enforceForTSTypes
형식: boolean
기본값: 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;
};사용 방법
구성 파일이나 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"grouped-accessor-pairs": "error"
}
}bash
oxlint --deny grouped-accessor-pairs