Skip to content
← Back to rules

eslint/no-unassigned-vars Correctness

✅ This rule is turned on by default.

作用 ​

禁止读取但从未赋值的 let 或 var 变量。

忽略的文件 ​

此规则会完全忽略 .svelte 和 .vue 文件。Oxlint 只解析这些文件的 <script> 块,因此由模板赋值的绑定看起来像从未被赋值。在 Svelte 中,模板通过 bind:this={el} 和 bind:value={x} 写入;在 Vue 中,<script setup> 中的 let 是一个 setup-let 绑定,v-model="x" 和 @click="x = 1" 等内联处理程序会直接为其赋值。

为什么这是不好的做法? ​

此规则会标记那些从未被赋值、但仍在代码中被读取或使用的 let 或 var 声明。 由于这些变量的值始终为 undefined,它们的使用很可能是编程错误。

示例 ​

此规则的错误代码示例:

js
let status;
if (status === "ready") {
  console.log("Ready!");
}

此规则的正确代码示例:

js
let message = "hello";
console.log(message);

let user;
user = getUser();
console.log(user.name);

如何使用 ​

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "no-unassigned-vars": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "no-unassigned-vars": "error",
  },
});
bash
oxlint --deny no-unassigned-vars

版本 ​

此规则添加于 v1.10.0。

参考资料 ​