Skip to content
← Back to rules

eslint/max-statements 스타일

작동 방식

함수 내 최대 문장 수를 강제합니다. 이 규칙은 함수가 지정된 문장 수를 초과하지 않도록 보장하여, 유지보수와 이해가 쉬운 더 작고 집중적인 함수를 촉진합니다.

왜 좋지 않은가?

일부 사람들은 큰 함수를 코드 문제의 징후로 여깁니다. 큰 함수는 많은 일을 하며 무엇이 일어나고 있는지 따라가기 어렵게 만들 수 있습니다. 이 규칙을 통해 큰 함수를 피할 수 있습니다.

예시

기본값 { "max": 10 } 옵션으로 틀린 코드 예시:

js
function foo() {
  const foo1 = 1;
  const foo2 = 2;
  const foo3 = 3;
  const foo4 = 4;
  const foo5 = 5;
  const foo6 = 6;
  const foo7 = 7;
  const foo8 = 8;
  const foo9 = 9;
  const foo10 = 10;

  const foo11 = 11; // 너무 많음.
}

const bar = () => {
  const foo1 = 1;
  const foo2 = 2;
  const foo3 = 3;
  const foo4 = 4;
  const foo5 = 5;
  const foo6 = 6;
  const foo7 = 7;
  const foo8 = 8;
  const foo9 = 9;
  const foo10 = 10;

  const foo11 = 11; // 너무 많음.
};

기본값 { "max": 10 } 옵션으로 올바른 코드 예시:

js
function foo() {
  const foo1 = 1;
  const foo2 = 2;
  const foo3 = 3;
  const foo4 = 4;
  const foo5 = 5;
  const foo6 = 6;
  const foo7 = 7;
  const foo8 = 8;
  const foo9 = 9;
  return function () {
    // 10

    // 내부 함수의 문장 수는 최대 문장 수 계산에 포함되지 않습니다.

    let bar;
    let baz;
    return 42;
  };
}

const bar = () => {
  const foo1 = 1;
  const foo2 = 2;
  const foo3 = 3;
  const foo4 = 4;
  const foo5 = 5;
  const foo6 = 6;
  const foo7 = 7;
  const foo8 = 8;
  const foo9 = 9;
  return function () {
    // 10

    // 내부 함수의 문장 수는 최대 문장 수 계산에 포함되지 않습니다.

    let bar;
    let baz;
    return 42;
  };
};

이 규칙은 클래스 정적 블록에 적용되지 않으며, 클래스 정적 블록 내의 문장은 해당 함수의 문장 수에 포함되지 않습니다.

기본값 { "max": 2 } 옵션으로 올바른 코드 예시:

js
function foo() {
  let one;
  let two = class {
    static {
      let three;
      let four;
      let five;
      if (six) {
        let seven;
        let eight;
        let nine;
      }
    }
  };
}

기본값 { "max": 10 }, { "ignoreTopLevelFunctions": true } 옵션으로 추가 올바른 코드 예시:

js
function foo() {
  const foo1 = 1;
  const foo2 = 2;
  const foo3 = 3;
  const foo4 = 4;
  const foo5 = 5;
  const foo6 = 6;
  const foo7 = 7;
  const foo8 = 8;
  const foo9 = 9;
  const foo10 = 10;
  const foo11 = 11;
}

구성

이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.

ignoreTopLevelFunctions

type: boolean

기본값: false

상위 수준 함수를 무시할지 여부.

max

type: integer

기본값: 10

함수당 허용되는 최대 문장 수.

사용 방법

설정 파일 또는 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용하세요:

json
{
  "rules": {
    "max-statements": "error"
  }
}
bash
oxlint --deny max-statements

참고 자료