eslint/no-import-assign 正确性
它的作用
禁止对导入的绑定进行赋值。
为什么这是不好的?
通过 ES 模块对导入的绑定进行更新会导致运行时错误。
TypeScript 编译器通常已经强制执行了此检查。尽管需要注意的是,某些情况下 TypeScript 无法捕获此类问题,例如通过 Object.assign 进行的赋值。因此,在这些情况下,该规则对于 TypeScript 代码仍然非常有用。
示例
以下为 错误 用法示例:
javascript
import mod, { named } from "./mod.mjs";
import * as mod_ns from "./mod.mjs";
mod = 1; // 错误:'mod' 是只读的。
named = 2; // 错误:'named' 是只读的。
mod_ns.named = 3; // 错误:'mod_ns' 的成员是只读的。
mod_ns = {}; // 错误:'mod_ns' 是只读的。
// 无法扩展 'mod_ns'
Object.assign(mod_ns, { foo: "foo" }); // 错误:'mod_ns' 的成员是只读的。如何使用
要通过配置文件或 CLI 启用 此规则,可以使用:
json
{
"rules": {
"no-import-assign": "error"
}
}bash
oxlint --deny no-import-assign