Skip to content
← Back to rules

eslint/no-self-assign 정확성

This rule is turned on by default.

작동 방식

양쪽이 완전히 동일한 할당을 허용하지 않습니다.

왜 나쁜가요?

자기 자신에 대한 할당은 효과가 없으므로, 아마도 부분적으로 리팩터링된 오류일 가능성이 큽니다. 이러한 코드는 여전히 수행해야 할 작업이 남아 있음을 나타냅니다.

예시

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

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로 설정되면 프로퍼티 확인이 비활성화됩니다.

propsfalse인 경우 아래는 적절한 코드의 예입니다:

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

참고 자료