TypeScript 中 JSON.parse 的返回值为什么是 any,以及如何安全地处理它
在 TypeScript 项目里调用 JSON.parse(localStorage.getItem('user') ?? '{}') 之后,多数人下意识会直接访问 user.name、user.email,编辑器既不报错也不提示,直到线上运行时因为某个字段缺失或者类型不对炸掉。问题根源是 JSON.parse 的签名返回 any,它把类型检查整个绕过去了,而 any 又会沿着属性访问、函数传参悄悄污染下去。这篇文章从 lib.es5.d.ts 里的定义讲起,说清楚为什么标准库不把它改成 unknown,以...