-
我给一个联合类型加了个新的状态值,以为编译器会提醒我去所有用到它的地方补上处理,结果它一声不吭、那个新状态在好几个 switch 里被悄悄漏掉了:一次没用 never 做穷尽检查的深度复盘
我有个订单状态联合类型 type Status = 'pending' | 'paid',好几处用 switch 分别处理这两种。后来加了已退款状态、把类型改成 'pending' | 'paid' | 'refunded',我想当然以为 TS 会在所有没处理 refunded 的 switch 处…- 0
- 0
-
一个用联合类型加 switch 处理多种形状的函数,在我新增了一种类型后悄悄漏掉了它、TS 却一声不吭,直到线上才暴露:一次 TypeScript 穷尽检查缺失的深度复盘
给图形联合类型加了三角形,在类型定义和创建处都改了、自信上线,结果三角形面积算错。排查发现那个算面积的 switch 忘了加 triangle 的 case、走了 default 返回 0,而 TS 编译全程一声不吭。根因是 TS 默认不对联合类型做穷尽性检查——一个 switch 漏处理某成员它不报错,加新成员后漏改的地方静默遗漏,我对 TS'改类型自动揪出要改处'的期待落空…- 0
- 0
穷尽检查
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


