Switch 语句让 bug 逃过编译期检查
TypeScript 的 switch 语句会悄无声息地让你遗漏分支。下面介绍如何用穷尽性检查模式来替代它,让构建阶段而非运行时暴露错误。
你重构了一个 shape 类型,加了一个新变体,TypeScript 却一切正常。CI 通过了。部署也上线了。然后某个用户触发了一个返回 的运行时分支,你的应用在生产环境抛出了异常。 罪魁祸首几乎肯定是 语句。TypeScript 的 不提供穷尽性保证。给 union 增加一个新成员,所有基于该 union 的…