-
TypeScript 里我用下标取数组元素、类型明明是 number,运行时却拿到 undefined 还崩了,我对着数组索引访问的类型不安全排查了大半天的复盘
用 TypeScript 写数据处理,从数组按下标取元素再调它的方法,类型检查一路绿灯、IDE 没任何警告就上线了。运行时却炸:Cannot read properties of undefined。满脸问号:这变量类型明明被 TS 标成 number,怎么会是 undefined?TS 不是号称类型安全吗连"可能是 undefined"都不提示?排查大半天才理解 TS 默认状…- 0
- 0
-
我以为 TypeScript 会帮我挡住所有 undefined,结果一个标注成 string 的值运行时是 undefined、访问属性直接崩,编译器却一声不吭,我排查了大半天的复盘
我一直以为用了 TypeScript、变量都标了类型,就再也不怕 undefined 了。结果线上某函数参数标的是 name: string,运行时实际传进来却是 undefined,name.toUpperCase() 直接崩,而编译完全通过、一个警告都没给。深挖才懂是项目没开 strictNullChecks(或整个 strict):非严格模式下 null 和 undefined 被当成&qu…- 5
- 0
-
类型全绿却线上白屏:TypeScript 编译期与运行时的鸿沟
那天下午客服群先炸了:一批用户打开个人中心是一片白屏,Sentry 里清一色是 Cannot read properties of undefined。诡异的是本地怎么都复现不出,而项目是全 TypeScript 写的、tsc 编译一个 error 都没有、全绿通过。引以为傲的"类型安全"显得格外讽刺。顺着字段往上扒才发现:后端前一天把某些用户的 profile 字段返回成了 …- 0
- 0
-
把 5 万行 JS 项目迁到 TypeScript 的 90 天血泪史:15 个真实坑 + 完整迁移 SOP
一个跑了七年的 Node.js + Express 老项目,5 万行业务代码 + 1.2 万行测试,我们用 102 天完成 JS → TS 全量迁移。本文写完整时间线、tsconfig 演进、allowJs 渐进策略、Branded Types / Project References / strict 八大开关、放弃过的两条歧路、和最后立下的 10 条 TS 工程纪律,供所有正在或将要做这件事的…- 6
- 0
strict
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!




