内容简介
本书主要针对想要学习类型系统的工作原理以及使用类型系统来提高代码质量的程序员。读者应该具备一些使用面向对象编程语言(如Java、C#、C或JavaScript/TypeScript)的经验,还应该有一些软件设计经验。
虽然本书的代码示例是基于TypeScript的,但是大部分内容是普遍适用的。事实上,本书的代码示例并非总是使用TypeScript特有的功能。在编写代码示例时,作者会尽可能让熟悉其他编程语言的程序员也容易理解它们。
虽然本书会介绍各种技术来帮助读者编写健壮的、可组合的、封装程度更好的代码,但是也假定了读者知道为什么希望获得这些特性。此外,本书侧重类型系统的实际应用,因此涉及的数学理论较少,但是应该熟悉基本的代数概念,如函数和集合等。