‹ 返回随想 Esc

TypeScript 带来的安全感

类型不能解决所有问题,但能减少很多低级噪音。

TypeScript 给我的安全感,不是它让代码绝对正确,而是它把一部分错误提前到了编辑器里。参数漏传、字段拼错、返回值变化,这些小问题以前常常要运行后才暴露。类型系统像一张不太完美的网,网不住所有业务逻辑,却能拦下许多不该进入运行时的粗心。

我维护过一个纯 JavaScript 项目,后来迁移到 TypeScript。迁移过程中发现了 20 多个隐藏的 bug:拼写错误的变量名、不一致的函数签名、未处理的 null 值。这些问题在运行时偶尔才会触发,很难通过测试发现。TypeScript 把它们变成了编译错误,提前暴露了。

TypeScript 的另一个价值是”重构信心”。以前重构 JavaScript 代码时,我总是很紧张——改了一个地方,不知道会不会影响其他地方。有了 TypeScript 后,改完代码编译一下就知道有没有问题。这种”即时反馈”让我更愿意重构,代码质量也因此提升。

2023 年 7 月 再看这个工具,我觉得 TypeScript 已经从”可选”变成了”默认”。新项目几乎都用 TypeScript,老项目也在逐步迁移。它的价值不是”类型安全”这个概念,而是”少犯错”这个实际好处。

评论