eslint/no-self-assign 정확성
작동 방식
양쪽이 완전히 동일한 할당을 허용하지 않습니다.
왜 나쁜가요?
자기 자신에 대한 할당은 효과가 없으므로, 아마도 부분적으로 리팩터링된 오류일 가능성이 큽니다. 이러한 코드는 여전히 수행해야 할 작업이 남아 있음을 나타냅니다.
예시
이 규칙에 부적절한 코드 예시:
javascript
foo = foo;
[a, b] = [a, b];
[a, ...b] = [x, ...b];
({ a, b } = { a, x });
foo &&= foo;
foo ||= foo;
foo ??= foo;javascript
obj.a = obj.a;
obj.a.b = obj.a.b;
obj["a"] = obj["a"];
obj[a] = obj[a];이 규칙에 적절한 코드 예시:
javascript
foo = bar;
[a, b] = [b, a];
// 이 패턴은 `no-use-before-define` 규칙에서 경고합니다.
let foo = foo;
// 기본값은 효과를 갖습니다.
[foo = 1] = [foo];
// 함수 호출이 있을 경우 무시됩니다.
obj.a().b = obj.a().b;
a().b = a().b;
// `&=` 및 `|=`는 정수가 아닌 값에도 효과를 줍니다.
foo &= foo;
foo |= foo;구성
이 규칙은 다음 속성을 가진 구성 객체를 수락합니다:
props
type: boolean
기본값: true
props 옵션이 false로 설정되면 프로퍼티 확인이 비활성화됩니다.
props가 false인 경우 아래는 적절한 코드의 예입니다:
javascript
obj.a = obj.a;
obj.a.b = obj.a.b;
obj["a"] = obj["a"];
obj[a] = obj[a];사용 방법
구성 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음과 같이 사용할 수 있습니다:
json
{
"rules": {
"no-self-assign": "error"
}
}bash
oxlint --deny no-self-assign