TypeScript 中的 noUnusedLocals

说明 noUnusedLocals 为什么会对未使用的局部变量报错,以及它如何帮助清理死变量和过时实现痕迹。

#tech / dev #resource / typescript #type / concept #status / growing

[!info] related notes

TypeScript 中的 noUnusedLocals

一句话定义

noUnusedLocals 会对函数体或局部作用域里声明后从未读取的变量报错。

核心机制 / 工作原理

官方文档定义非常直接:

  • Report errors on unused local variables

例如:

const createKeyboard = (modelID: number) => {
  const defaultModelID = 23;
  return { type: "keyboard", modelID };
};

开启后,TypeScript 会指出:

  • defaultModelID 声明了但从未被读取

最小例子 / 最小场景

{
  "compilerOptions": {
    "noUnusedLocals": true
  }
}

它最适合帮助清理:

  • 重构后残留变量
  • 早期草稿中的中间值
  • 已失效的局部状态

边界与易混淆点

它不等于 ESLint 的 unused 规则

两边都能做未使用检查,但:

  • TypeScript 是编译器级诊断
  • ESLint 是规则层治理

团队通常需要决定到底让哪一层作为主约束来源。

它更偏“可维护性卫生”

这个选项通常不改变运行结果,但会显著减少死变量和阅读噪音。

它和 noUnusedParameters 是平行概念

  • noUnusedLocals 查局部变量
  • noUnusedParameters 查函数参数

参考信息

创建于 2026/5/15 更新于 2026/5/27