Skip to content
← Back to rules

eslint/no-sequences 제한

작동 방식

쉼표 연산자를 사용하는 것을 금지합니다.

왜 문제가 될까?

쉼표 연산자는 각 피연산자(왼쪽에서 오른쪽 순서로)를 평가하고 마지막 피연산자의 값을 반환합니다. 그러나 이는 종종 부수 효과를 가리고, 사용하는 경우 대부분 실수입니다.

옵션

  • allowInParentheses (기본값: true): false로 설정하면 괄호로 감싸져 있더라도 쉼표 연산자를 허용하지 않습니다.

예시

이 규칙에 부적절한 코드 예시:

javascript
((foo = doSomething()), val);

(0, eval("doSomething();"));

// 화살표 함수 본문은 중첩된 괄호가 필요함
const fn = () => (doSomething(), val);

// allowInParentheses: false일 경우
foo = (doSomething(), val);

이 규칙에 적절한 코드 예시:

javascript
foo = (doSomething(), val);

(0, eval)("doSomething();");

// 조건문에서는 단일 추가 괄호만으로 충분함
do {} while ((doSomething(), !!test));

for (i = 0, j = 10; i < j; i++, j--) {}

// 화살표 함수 본문은 중첩된 괄호가 필요함
const fn = () => (doSomething(), val);

구성

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

allowInParentheses

type: boolean

기본값: true

이 옵션이 false로 설정되면, 표현식 시퀀스가 명시적으로 괄호로 둘러싸여 있어도 쉼표 연산자를 허용하지 않습니다. 기본값은 true입니다.

사용 방법

이 규칙을 활성화하려면 구성 파일이나 CLI에서 다음과 같이 사용할 수 있습니다:

json
{
  "rules": {
    "no-sequences": "error"
  }
}
bash
oxlint --deny no-sequences

참고 자료