Skip to content
← Back to rules

eslint/no-import-assign 정확성

This rule is turned on by default.

작동 방식

가져온 바인딩에 할당하는 것을 금지합니다.

왜 좋지 않은가?

ES 모듈을 통해 가져온 바인딩의 업데이트는 런타임 오류를 유발합니다.

타입스크립트 컴파일러는 일반적으로 이 검사를 이미 강제합니다. 다만, 타입스크립트가 감지하지 못하는 경우도 있는데, 예를 들어 Object.assign을 통한 할당 등이 있습니다. 따라서 이러한 경우에 타입스크립트 코드에서도 이 규칙은 여전히 유용합니다.

예시

이 규칙에 맞지 않는 잘못된 코드 예시:

javascript
import mod, { named } from "./mod.mjs";
import * as mod_ns from "./mod.mjs";

mod = 1; // ERROR: 'mod'는 읽기 전용입니다.
named = 2; // ERROR: 'named'는 읽기 전용입니다.
mod_ns.named = 3; // ERROR: 'mod_ns'의 멤버들은 모두 읽기 전용입니다.
mod_ns = {}; // ERROR: 'mod_ns'는 읽기 전용입니다.
// 'mod_ns'를 확장할 수 없습니다.
Object.assign(mod_ns, { foo: "foo" }); // ERROR: 'mod_ns'의 멤버들은 모두 읽기 전용입니다.

사용 방법

구성 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:

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

참고 자료