-
我给一个联合类型加了个新的状态值,以为编译器会提醒我去所有用到它的地方补上处理,结果它一声不吭、那个新状态在好几个 switch 里被悄悄漏掉了:一次没用 never 做穷尽检查的深度复盘
我有个订单状态联合类型 type Status = 'pending' | 'paid',好几处用 switch 分别处理这两种。后来加了已退款状态、把类型改成 'pending' | 'paid' | 'refunded',我想当然以为 TS 会在所有没处理 refunded 的 switch 处…- 0
- 0
-
TypeScript discriminated union exhaustiveness check 漏写引发 ¥21.8 万对账偏差的 4 天复盘:never 守卫 + ESLint + 运行时白名单三层兜底
支付编排系统新增 refund_partial 事件类型,因 47 处 union switch 中 35 处裸 default 兜底,TypeScript 沉默,5128 笔订单错归 ignored 桶,23 天累积 ¥21.8 万对账偏差。4 天复盘:从渠道日志比对走错方向,到 SQL 聚合一眼定位,到 assertNever 全面铺设、ESLint 规则强制、运行时白名单告警,立 8 条 T…- 6
- 0
exhaustiveness
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


