Skip to content
← Back to rules

eslint/grouped-accessor-pairs 스타일

An auto-fix is available for this rule.

작동 방식

객체 리터럴과 클래스 내에서 액세서 쌍을 그룹화하도록 요구합니다.

왜 좋지 않은가?

게터 또는 세터 쌍을 객체나 클래스 정의의 어디에든지 정의하는 것은 허용되지만, 동일한 속성에 대한 액세서 함수를 그룹화하는 것이 최선의 실천 방법으로 간주됩니다.

예시

이 규칙에 대해 잘못된 코드 예시:

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

참고 자료