← [ BACK_TO_NOTES ]

TypeScript 中的 noUnusedParameters

说明 noUnusedParameters 为什么会对未使用的函数参数报错,以及它为何允许以下划线开头的参数作为显式忽略约定。

#dev #typescript #concept #growing

[!info] related notes

TypeScript 中的 noUnusedParameters

一句话定义

noUnusedParameters 会对函数签名中声明但从未使用的参数报错。

核心机制 / 工作原理

官方文档定义很直接:

  • Report errors on unused parameters in functions

例如:

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

开启后,TypeScript 会指出:

  • modelID 声明了但没有被读取

最小例子 / 最小场景

{
  "compilerOptions": {
    "noUnusedParameters": true
  }
}

它特别适合帮助你识别:

  • 已经过时的 API 参数
  • 实现和签名不同步
  • callback 里其实不需要的参数位

边界与易混淆点

以下划线开头的参数会被豁免

官方文档明确说明:

  • names starting with an underscore are exempt

例如:

const createDefaultKeyboard = (_modelID: number) => {
  return { type: "keyboard" };
};

这相当于显式告诉团队:

  • 这个参数签名上需要保留,但当前实现不使用它

它和 noUnusedLocals 是平行概念

  • 一个看参数
  • 一个看局部变量

它常和回调签名设计一起出现

很多时候 unused parameter 并不意味着代码错,而是意味着:

  • 签名设计过宽
  • 或当前实现只是刻意忽略某个参数

参考信息

创建于 2026/5/15 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本