← [ BACK_TO_NOTES ]

TypeScript 中的 allowUnusedLabels

说明 allowUnusedLabels 如何控制 TypeScript 对未使用标签的诊断,以及它为什么经常帮助发现把对象字面量误写成标签语句的错误。

#dev #typescript #concept #growing

[!info] related notes

TypeScript 中的 allowUnusedLabels

一句话定义

allowUnusedLabels 用来控制 TypeScript 如何对未使用标签语句做诊断。

核心机制 / 工作原理

官方文档同样给出三种状态:

  • undefined:默认,给编辑器建议级警告
  • true:忽略未使用标签
  • false:把未使用标签升级成编译错误

官方文档还特别强调了一个常见真实场景:

  • JavaScript 里 label 很少见
  • 出现未使用 label 往往说明你本来想写的是对象字面量

例如:

function verifyAge(age: number) {
  if (age > 18) {
    verified: true;
  }
}

这里的 verified: 实际会被理解成 label,而不是对象属性。

最小例子 / 最小场景

{
  "compilerOptions": {
    "allowUnusedLabels": false
  }
}

这很适合用来提前暴露:

  • 误写语法
  • 被遗忘的 label
  • 控制流草稿残留

边界与易混淆点

它也是三态配置

和 allowUnreachableCode 一样,默认的 undefined 不等于“完全不开启”,而是:

  • 以建议级形式出现

它抓到的 often 不是“真的在用 label 的高级写法”

更多时候,它抓到的是:

  • 误写对象字面量
  • 少写 return
  • 代码草稿残留

它更偏语法卫生

这类问题通常不复杂,但如果漏过去,阅读体验和排障成本会很差。

参考信息

创建于 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
关闭浮层 / 取消命令;输入框内清空文本