eslint/no-multi-assign 스타일
작동 방식
연쇄 할당 표현식의 사용을 금지합니다.
왜 문제가 될까요?
변수를 연쇄적으로 할당하면 예기치 못한 결과가 발생할 수 있으며, 코드를 읽기 어려워질 수 있습니다.
js
(function () {
const foo = (bar = 0); // `foo = bar == 0`이 의도였는지 확인하세요?
bar = 1; // `bar`가 상수 아니므로 이 코드는 실패하지 않습니다.
})();
console.log(bar); // `bar`가 스코프되지 않으므로 결과는 1이 출력됩니다.예시
이 규칙에 맞지 않는 잘못된 코드 예시:
js
var a = (b = c = 5);
const foo = (bar = "baz");
let d = (e = f);
class Foo {
a = (b = 10);
}
a = b = "quux";이 규칙에 맞는 올바른 코드 예시:
js
var a = 5;
var b = 5;
var c = 5;
const foo = "baz";
const bar = "baz";
let d = c;
let e = c;
class Foo {
a = 10;
b = 10;
}
a = "quux";
b = "quux";구성
이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.
ignoreNonDeclaration
type: boolean
기본값: false
true로 설정되면, 변수 선언 또는 클래스 필드 초기화를 포함하지 않는 연쇄 할당을 허용합니다.
이 옵션이 true일 때 올바른 코드 예시:
js
let a;
let b;
a = b = "baz";
const x = {};
const y = {};
x.one = y.one = 1;이 옵션이 true일 때 잘못된 코드 예시:
js
let a = (b = "baz");
const foo = (bar = 1);
class Foo {
a = (b = 10);
}사용 방법
이 규칙을 구성 파일 또는 명령줄 인터페이스에서 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"no-multi-assign": "error"
}
}bash
oxlint --deny no-multi-assign