eslint/no-import-assign 정확성
작동 방식
가져온 바인딩에 할당하는 것을 금지합니다.
왜 좋지 않은가?
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