You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript编译为JS时出现Expected a 'break' before 'case'报错

报错原因

这个报错是代码校验规则(如ESLint的no-fallthrough规则)的误判,你编写的TypeScript业务代码本身不存在语法或逻辑错误:
TypeScript在把async/await语法转译到低版本ES标准(如ES5、ES2016)时,会通过tslib的__generator函数实现异步状态机,生成的switch/case结构是状态机的原生实现,case 2执行完毕后直接落入case 3是故意设计的合法逻辑,不需要加break语句。但你的代码校验工具默认开启了「禁止case语句落空」的规则,就会对编译产物抛出该错误。

解决方案

可以根据你的实际场景选择以下任意一种方案:

  • 最推荐:将TS编译输出的目录加入代码校验工具的忽略列表(如ESLint的.eslintignore文件),编译产物本身不需要做开发阶段的代码风格校验。
  • 从根源避免:修改tsconfig.json中的compilerOptions.target配置为ES2017或更高版本,只要你的运行环境(浏览器、Node.js版本)支持原生async/await,TS就不会生成这种状态机结构的兼容代码,直接输出原生异步语法的JS文件。
  • 调整校验规则:如果必须校验编译产物,可以修改ESLint的no-fallthrough规则配置,允许case语句中存在状态跳转逻辑时不需要break,或者直接对该类文件关闭no-fallthrough规则。

内容的提问来源于stack exchange,提问作者CSharp-n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:09:02