打开网易新闻 查看精彩图片

技术主管从大会回来,眼里闪着那种光——你懂的,就是那种"刚听完45分钟革命性技术演讲,现在我要重写一切"的光。2024年的晨会上,他宣布:我们要迁TypeScript。

没人反对。这年头不用TS,就像承认你还在生产环境写jQuery。我们有4.7万行JavaScript,跑得稳,客户满意,营收在涨。但"不够类型安全",突然成了必须解决的痛点。

第一个PR漂亮得像样板间。团队花了三周把核心模块搬过去,类型定义写得比注释还认真。QA测完没发现新问题,主管在群里发了庆祝表情。

上线第二天,生产环境炸了。一个边界情况——用户同时触发两个模态框时——TS编译器完全没拦住的空指针。团队排查三小时,最后发现是类型断言里那个该死的as any

「TypeScript能防止的bug,前提是你要写对类型。」一位开发者在复盘文档里写下这句,后面跟了十七个踩。

三个月后统计,迁移期间引入的bug比修复的还多两个。类型检查确实抓了十几个拼写错误,但生产事故的根因,和之前用JS时一模一样:边界情况没覆盖,异步逻辑没理清,还有那个永远存在的"我以为这里不会为空"。

最近晨会上有人问,要不要把剩下的模块也迁了。主管低头看咖啡,说再等等。