作者|Eric Elliott
译者|无明
TypeScript 在 2017 年到 2019 年期间发展得很快,有很多值得关注的地方。在 2018 年的 JavaScript 状态调查中,几乎一半的受访者表示他们尝试过 TypeScript,并会再次使用它。那么,你是否应该用它来开发大型项目?本文将采用更为关键的数据驱动方法来分析使用 TypeScript 构建大规模应用程序的投资回报率(ROI)。
TypeScript 的增长
TypeScript 是增长最快的语言之一,也是目前领先的可编译为 JavaScript 的语言。
谷歌趋势:2014 至 2019 年 TypeScript 的增长。
截止 2018 年 9 月份,GitHub 贡献者数量增长最快的语言。
虽然这些已经非常令人印象深刻,但还不足以达到支配整个 JavaScript 生态系统的程度。
谷歌搜索趋势:2014 至 2018 年 JavaScript(红色)与 TypeScript(蓝色)。
2008 年到 2018 年,各个编程语言 GitHub 代码库:TypeScript 不在前 5 位。
看来,TypeScript 在 2018 年达到了一个拐点,并且在 2019 年将会有大量的项目采用它。作为 JavaScript 开发人员,你可能没有选择余地。你无法控制 TypeScript 的发展态势,你能做的就是学习和使用它。
不过,在考虑是否使用它时,你应该对它的收益和成本有一个现实的理解。它会产生积极或消极的影响吗?
根据我的经验,两者都会有,同时也会缺少正面的投资回报率。很多开发人员喜欢它,包括我在内,但所有这些都不是没有成本的。
背景
我之前使用较多的是静态类型语言,包括 C/C++ 和 Java。起初我很难适应 JavaScript 的动态类型,但一旦习惯了它,就像是在一条长长的黑暗隧道里看到了出口。静态类型有很多值得我们喜欢的东西,动态类型也是。
在过去的几年中,我一直在使用 TypeScript,并全力以赴地进行了一年多的日常实践。我带领了几个使用 TypeScript 作为主要编程语言的团队,看到了 TypeScript 给项目带来的影响,并将其与类似的大规模原生 JavaScript 项目进行比较。
2018 年,去中心化应用程序开始爆发,其中大多数使用了智能合约和开源软件。对于有价值的互联网应用,bug 会让用户付出代价。编写可靠的代码比以往任何时候都重要,因为这些项目通常是开源的。我认为我们使用 TypeScript 是一个正确的决定,其他 TypeScript 团队可以更容易地与我们集成,同时保持与 JavaScript 项目的兼容性。
我对 TypeScript 的好处、成本和不足都有了更深入的了解。我想说的是,它并不像我所希望的那么成功。除非它有很大改进,否则我不会在另一个大型项目中使用 TypeScript。
我喜欢 TypeScript 的哪些方面?
从长期来看,我仍然对 TypeScript 持乐观态度。TypeScript 仍然有很多东西是我喜欢的。我希望 TypeScript 开发者和支持者将我的观点视为一种建设性的批评,而不是一种充满敌意的吐槽。
静态类型有助于函数的文档化、阐明用法和减少认知开销。例如,我发现 Haskell 的类型很有用,使用它的成本也很低,但有时候 Haskell 的高级类型系统也会给我们带来妨碍。要在 Haskell(或 TypeScript)中使用转换器类型并不容易,而且可能比无类型语言更糟糕。
我喜欢 TypeScript 的一点是,TypeScript 中的注解是可选的,使用了结构化类型,