在 tsconfig 里加上 strict true 之后 tsc 输出 613 条错误,翻了两页发现一半是 TS2531 Object is possibly 'null',另一半集中在三个老页面。乍看像缓存或者权限的锅,追下去往往不是。

npx tsc --noEmit 2>&1 | grep -o 'TS[0-9]*' | sort | uniq -c | sort -rn | head
npx tsc --noEmit --strictNullChecks 2>&1 | wc -l
grep -n '"strict"' tsconfig.json

追下去是这么回事:strict 是一组开关的合集,空值检查、隐式 any、函数参数双变各自影响不同的代码。一次性全开会把错误摊到所有文件里,看着吓人,其实集中在少数几类。

碰到「strict 严格模式迁移」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

具体做法是,先按错误码分组统计 看哪一类占比最高;把 strict 拆成单个开关逐项打开 一次只动一项;优先修空值检查 它对运行时收益最直接;老目录先 exclude 出去 定一个季度内清零的清单。

验收就看一点,错误总数按周往下走 每次提交都能看到减少的数字 老目录清单剩下不到十个文件。

作者 9823189