TypeScript 是 JavaScript 的类型的超集,它可以编译成纯 JavaScript。编译出来的 JavaScript 可以运行在任何浏览器上。TypeScript 编译工具可以运行在任何服务器和任何系统上。TypeScript 是开源的。
虽然大多数人认为 TS 是一门语言,但我始终觉得它只不过是 JS 的拓展而已。
特征
- 类型检查:TS 会在编译代码时,进行严格的静态类型检查,可以提前发现代码存在的隐患
- 语言拓展:TS 会包含来自 ES6 以及未来提案中的 JS 特性,比如异步操作和装饰器,也会从其他语言借鉴某些特性,如接口和抽象类
- 工具属性:TS 可以编译成标准的 JS 代码,可以在任何浏览器、操作系统上运行,无需任何运行时的独立开销
与 JS 的对比
TypeScript | JavaScript |
---|---|
JavaScript 的超集用于解决大型项目的代码复杂性 | 一种脚本语言,用于创建动态网页。 |
可以在编译期间发现并纠正错误 | 作为一种解释型语言,只能在运行时发现错误 |
强类型,支持静态和动态类型 | 弱类型,没有静态类型选项 |
最终被编译成 JavaScript 代码,使浏览器可以理解 | 可以直接在浏览器中使用 |
支持模块、泛型和接口 | 不支持模块,泛型或接口 |
支持 ES3,ES4,ES5 和 ES6 等 | 不支持编译其他 ES3,ES4,ES5 或 ES6 功能 |
社区的支持仍在增长,而且还不是很大 | 大量的社区支持以及大量文档和解决问题的支持 |
发展趋势
- TypeScript 是由微软开发,它的第一个版本发布于 2012 年 10 月
- Google 开发的 Angular2 就是使用 TypeScript 编写的
- 最新的 Vue 、React 也可以集成 TypeScript
- TypeScript 被广泛运用于很多公司来构建大型项目
为什么使用 TS
除了类型检查这一最大的好处之外,使用 TS 还能带来其他好处:
- VSCode 等编辑器的自动补全、导航和重构功能,使得接口定义可以直接代替文档,同时也可以提高开发效率,降低维护成本
- TS 可以帮助团队重塑“类型思维”,接口的提供方将被迫去思考 API 的边界,将会从代码的编写者变成设计者
学习导图