该系列文章是本人阅读阮一峰老师的《TypeScript教程》学习笔记,欢迎各位大佬指出不正确的地方,感谢!
概述
TS不是一个全新的语言,可以看成是JS的超集。它继承了JS的全部语法,又增加了一些自己的语法(最主要的部分就是类型系统)。
类型的概念
类型是有相同特征的值,一旦确定某个值的类型,则可以认为该值有这个类型的全部特征,可以进行该类型的全部运算。
类型也是人为添加的一种编程约束和用法提示。
动态类型与静态类型
在语法上,JS属于动态类型语言,因为运算符可以接受任何类型的值。
TS属于静态类型语言,作用就是为JS引入静态类型特征。
静态类型的优点
- 有利于代码的静态分析 不必运行代码就可以确定变量的类型,从而推断出代码有没有错误。
- 有利于发现错误 因为对值、变量、运算符都有严格的类型约束,所以能轻松发现错误。
- 更好的IDE支持,做到语法提示和代码自动补全
- 提供了代码文档 通过看类型大致推断出代码的作用。
- 有助于代码重构
静态类型的缺点
- 丧失了动态类型的代码灵活性
- 增加了编程工作量
- 更高的学习成本
- 引入了独立的编译步骤
- 兼容性问题