编译器应该捕获遗漏的状态分支,而不是你的 QA 团队
给状态机添加新状态很容易。记住更新每一个 switch 语句却不然。下面介绍如何让 TypeScript 在你遗忘某个 case 时拒绝编译。
状态机起初很干净。三个值,三个 switch 分支。然后重试逻辑添加了第四个状态。部分失败添加了第五个。你更新了 reducer,却漏掉了状态徽标组件、分析映射器和导出格式化器。 一切都能编译通过。两个冲刺周期后,当用户在你从未手动测试过的边界场景中遇到空白屏幕时,bug 才浮出水面。 TypeScript…