很多人认为TypeScript不过是为Java开发者而准备的JavaScript。
事实真的是这样吗?恐怕不然。
TypeScript 可以远远超过这一点 —— 它是一个微妙的工具,一个简单优雅的 JavaScript 封装层,它是驱动 Web 的编程语言。
如果你发现自己:
-
用你几乎不了解的库和框架编写 JavaScript
-
与其他开发人员一起编写 JavaScript
-
编写处理后端数据的 JavaScript
-
写一些将来你还需要继续使用的 JavaScript
那么 TypeScript 将为你提供正确的解决方案。
前提是你需要深入理解TypeScript结构化类型系统,以及为什么它们对 JavaScript 如此重要和有用。
TypeScript的学习路径应该是这样的:
1. 先用起来
如果选择了合适的工具,如VSCode,我们可能已经在不知不觉中使用 TypeScript 了。由于 TypeScript 是一个渐进的类型系统,我们可以一步一步地开启编程语言为我们的代码提供的洞察力,编辑器中的那些红色曲线会告诉我们很多拼写和语法错误。
2. 使用类型
我们学习 TypeScript 的一些主要特性,比如类型注释、类型推断和控制流。我们将定义基本类型和复杂类型,并学习类型和接口之间的区别。对于我们可以创建的每个变量或常量,我们都找到一种方法来提供类型。
3. 函数
函数是JavaScript中的一个基本特性,我们可以在输入函数签名时看到这一点。我们将会学习函数头和函数体、函数的结构类型,以及如何为同一个函数定义不同的行为。
4. 联合和交集类型
TypeScript 的类型系统可以被看作是一个无穷无尽的值空间,而类型只是这个空间中的离散值集。这允许像 union 和 intersection 这样的代数运算, 使我们更容易为值定义具体的类型。我们将学习类型的拓宽和收缩、顶部类型和底部类型,以及如何影响控制流。
5. 泛型
泛型是一种为未知类型做准备的方法。当我们知道某种类型的某种行为,但不能确切地说它影响哪种类型时,泛型可以帮助我们对这种行为进行建模。我们将学习泛型约束、绑定泛型、映射类型和类型修饰符。
6. 有条件的类型
条件类型可以说是 TypeScript 类型系统最独特的特性。它们允许我们引入一种在编程语言中看不到的元编程级别,我们可以创建 if/else 子句来根据输入类型确定类型。这允许我们使用一套强大的工具来一次性定义模型和行为,并确保我们不会陷入类型维护的地狱。
7. 类型思维
最后是形成类型思维。在日常编程中有意识的进入“以类型思考”的状态,在开始实现功能之前,我们会考虑构建一个健壮且定义良好的类型集。这有助于我们验证我们所编写的代码是否符合我们的预期。
欢迎关注公众号:文本魔术,了解更多