类型系统的益处

提前检测错误。

静态类型系统的首要优点就是,能尽早发现逻辑错误,而不是到真正上线执行的时候才发现。JavaScript 松散的语法,在带来方便的同时,也让它变得很脆弱。通过上面的两个例子,可以感受到静态类型分析带来的优势。举个例子,相信不少人在 JavaScript 开发中,都遇到过『强制类型转换』的坑,而使用 TypeScript 则可以有效地避免这种问题,原因自然是不言而喻。

舒适的开发体验。

首先,类型系统的存在为很多辅助开发的工具提供了可能。比如说,当你调用函数时,现代的编辑器可以清楚地告诉你该函数需要几个参数、参数是什么类型的、哪些参数是可选的。这样可以省去大量查阅 API 的时间,提高开发效率。

Why Typescript - 图1

其次,类型具有一定的自解释(self-explain)能力。而类型就像是对程序自身的注释。毕竟,代码写出来是让人读的。很多时候,光是看类型本身,我们就能理解某段程序的意图。与纯人工注释不同,随着项目的不断迭代,人工注释可能会越来越词不达意,但类型标注却可以始终忠实地反映程序本身的意义。

更强大的是,借助某些工具,可以根据类型标注自动生成文档。详情请参阅 typedoc

更高的抽象性。

类型系统允许程序设计者对程序以较高层次的方式思考,将设计者从烦人的低层次实现中解脱出来,有一种提纲挈领的感觉。设计者可以通过设计子系统间的接口,来表达程序的逻辑。也就是说,让设计脱离实现,体现出一种 IDL(接口定义语言)的感觉,让程序设计回归本质。
https://juejin.cn/post/6844903783869349902