深入理解TypeScript - (EPUB全文下载)
文件大小:2.73 mb。
文件格式:epub 格式。
书籍内容:
深入理解TypeScript
第1章 为什么要使用TypeScript
第2章 JavaScript常见语法
第3章 JavaScript新语法特性
第4章 TypeScript项目构成
第5章 快速创建TypeScript项目
第6章 TypeScript类型系统
第7章 关于JSX
第8章 TypeScript编译选项设置
第9章 TypeScript错误处理
第10章 开发与测试工具
第11章 提示与建议
第12章 TypeScript代码风格指南与代码约定
第13章 TypeScript编译原理
第1章 为什么要使用TypeScript
本章主要介绍如何开始使用TypeScript,以及为什么使用TypeScript。
1.1 开始使用TypeScript
TypeScript代码会被编译成JavaScript代码,JavaScript代码才是实际被执行的代码。在开始之前,你需要准备好以下工具。
● TypeScript编译器。它是OSS(Open Source Software,开源软件),在源代码和npm(Node.js包管理工具)上可以找到。
● TypeScript编辑器。如果愿意,你可以使用Notepad,但是我更推荐使用Visual Studio Code(以下简称VS Code)和我所写的扩展工具。当然还有其他许多IDE(Integrated Development Environment,集成开发环境)也支持TypeScript。
1.TypeScript版本
本书将介绍许多与版本无关的内容,但我通常建议人们使用稳定的版本,因为随着时间的推移,不断更新的编译器的测试用例将会捕获越来越多的Bug。
在安装TypeScript之前,需要先安装npm(具体见第10章)。然后可以使用命令行来安装TypeScript,如下所示。
现在,局部安装的TypeScript将是最新版本,而且各种IDE也支持它。例如,你可以让VS Code通过创建.vscode/settings.json来使用这个版本,如下所示。
2.获取源代码
此书的源代码可以在Basarat的GitHub个人主页上找到,地址详见参考资料[1],大多数代码示例都可以直接复制到VS Code中运行。
1.2 选择TypeScript的理由
微软推出TypeScript主要是为了实现两个目标。
● 为JavaScript提供可选的类型系统。
● 兼容当前及未来的JavaScript的特性。
下面将对这两个目标进行详尽的解析。
1.TypeScript的类型系统
读者可能会问,为什么要给JavaScript加上类型?
类型系统能够提高代码的质量和可维护性。大型团队(如 Google、Microsoft、Facebook等)经过不断实践后得出一些结论,以下两点尤其值得注意。
● 类型有利于代码的重构,它有利于编译器在编译时而不是运行时捕获错误。
● 类型是出色的文档形式之一,函数签名是一个定理,而函数体是具体的实现。
然而,类型总是有一些不必要的复杂的存在方式,而TypeScript在这方面尽可能地降低了入门门槛。它是通过以下方式做到的。
1)JavaScript即TypeScript
TypeScript为JavaScript代码提供了编译时的类型安全。由TypeScript的名字就可以看出,这种做法并不奇怪。最棒的是这些类型是完全可选的。写在.js文件里的JavaScript代码,可以被重新命名为.ts文件,TypeScript仍然会返回与原始JavaScript文件相同的.js文件。被设计成JavaScript的“超集”,并且带有可选的类型系统,TypeScript是经过慎重考虑并有意这样做的。
2)类型可以是隐式的
TypeScript 将尽可能多地去推断类型信息,以便在代码开发过程中以极小的成本为你提供类型安全。例如,在下面的代码里,TypeScript会知道 foo的类型是number,并在第2行显示把字符串赋值给它是错误的。
这种类型推断是很有必要的。如果你做一些类似上面例子里的事情,那么,在接下来的代码里,你就不能很确定 foo 是 number 类型的还是 string 类型的。这类问题经常出现在大型、多文件的代码库中。稍后我们将会深入探讨类型推断的规则。
3)类型可以是显式的
正如之前所提到的,TypeScript 会尽可能安全地推断类型。然而,你可以使用类型注解来做下面的事情。
● 帮助编译器,更重要的是为下一个必须阅读代码的开发人员记录内容。
● 强制编译器编译你认为它应该去编译的内容,这可以让编译器对代码所做的算法分析与你对代码的理解相匹配。
在后面的章节中,我们将讨论TypeScript支持的所有注解语法的细节。
4)类型是结构化的
在一些语言(尤其是带有名义上的类型系统的语言)里,静态类型会导致一些不必要的方式的存在,因为即使知道代码可以正常工作,语言的语义也会迫使你复制周围的一些东西。这就跟AutoMapper这样的东西对C#来说非常重要是一个道理。在TypeScript中,我们真的希望类型对JavaScript初学者来说是非常简单的,因此,TypeScript的类型是结构化的。这意味着鸭子类型是一流的语言结构。在下面的例子中,函数iTakePoint2D 将会接受包含它所期望的事物(x和y)的所有内容。
5)类型错误不会阻止JavaScript的正常运行
为了方便把JavaScript代码迁移到TypeScript,即使存在编译错误,在默认情况下,TypeScript代码也会尽可能地被编译为JavaScript代码,例如下面的示例。
将会编译成下面这样。
因此,你可以将JavaScript代码逐步迁移至TypeScript,这与其他语言编译器的工作方式有很大不同,而这也正是TypeScript被青睐的另一个原因。
6)类型可以由环境来定义
TypeScript 的主要目标之一是让人们能够安全、轻松地在 Ty ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 深入理解TypeScript - (EPUB全文下载)