Switch statements 在編譯時期就讓 bug 漏了進去
TypeScript 的 switch statements 會默默讓你忘記處理某些 case。以下說明如何將它們替換成經過 exhaustiveness-check 的 pattern,讓錯誤在 build 階段就失敗,而不是跑到 runtime 才出錯。
你重構了一個 shape type,加了一個新的 variant,TypeScript 依然顯示綠燈。CI 過了。Deploy 出去了。結果使用者踩到一個 runtime branch,回傳了 ,你的 app 就在 production 炸了。 罪魁禍首幾乎肯定是一個 switch…