TypeScript 中文网: 文档 - 面向 JavaScript 程序员的 TypeScript (nodejs.cn)
特征 | JavaScript | TypeScript |
---|---|---|
类型系统 | 弱类型 | 强类型 |
静态类型检查 | 无 | 有 |
可选类型注解 | 无 | 有 |
类型推断 | 有 | 有 |
接口 | 无 | 有 |
继承 | 基于原型的继承 | 基于类的继承 |
泛型 | 无 | 支持 |
支持装饰器 | 无 | 支持 |
编译时类型检查 | 不支持 | 支持 |
编译后代码可读性 | 高 | 低 |
TypeScript 提供了 JavaScript 的所有功能,以及在这些功能之上的附加层:TypeScript 的类型系统。
JavaScript 和 TypeScript 的主要差异
1. TypeScript 从核心语言方面和类概念的模塑方面对 JavaScript 对象模型进行了扩展。
2. JavaScript 代码可以在无需任何修改的情况下与 TypeScript 一同工作,同时可以使用Babel编译器将 TypeScript 代码转换为 JavaScript。
3. TypeScript 通过类型注解提供编译时的静态类型检查。
TypeScript提供了很多数据类型,通过类型对变量进行限制,称之为类型注解,使用类型注解后,就不能够随意变更变量的类型。
项目较大时,变量类型被变更的频率就会增加,出错的概率就会提高,因此TS时强类型的面向对象的。
4. TypeScript 中的数据要求带有明确的类型,JavaScript不要求。
5. TypeScript 为函数提供了缺省参数值。
缺省参数使用主要规则:调用时你只能从最后一个参数开始进行省略,换句话说,如果你要省略一个参数,你必须省略它后面所有的参数。
6. TypeScript 引入了 JavaScript 中没有的“类”概念。
7. TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。
8. TypeScript 还具有接口和访问修饰符,允许开发人员在单个代码库上进行协作和交互。