TypeScript 是 JavaScript 的强类型版本。而后在编译期去掉类型和特有语法,生成纯粹的 JavaScript 代码。因为最终在浏览器中运行的仍然是 JavaScript,因此 TypeScript 并不依赖于浏览器的支持,也并不会带来兼容性问题。css
TypeScript 是 JavaScript 的超集,这意味着他支持全部的 JavaScript 语法。并在此之上对 JavaScript 添加了一些扩展,如 class / interface / module 等。这样会大大提高代码的可阅读性。html
和 JavaScript 若类型不一样,TypeScript 这种强类型语言最大的优点在于静态类型检查,能够在代码开发阶段就预知一些低级错误的发生。git
静态(static):无需运行,根据程序代码就能肯定结果。github
动态(dynamic):只有运行才能肯定结果。typescript
类型:对某个数据所具备的性质进行的描述。如它的结构是怎样的,能进行什么操做。浏览器
静态类型:数据拥有类型,且仅有数据拥有类型。框架
动态类型:数据拥有类型,存放数据的变量、表达式也拥有类型,且类型在编译时是固定的。less
下图是静态语言和动态语言的比较:工具
从表中可见,动态语言和静态语言各有优劣,而TypeScript提供了静态语言强类型支持,同时兼容动态语言弱类型的语法,使用者根据项目需求自由选择。学习
这种动静结合的特性,目前还没在其余语言见过。
从 Angular 2 以后,官方推荐使用 TypeScript 做为开发 Angular 应用的首选语言
可读性良好
这里引用知乎上一位开发者对使用推广 TypeScript 的见解:
typescript绝对是好东西,不过推广是有难度的: 一、TS是微软制造,最好的开发工具是VS,想一想有些人就激动了(什么vi流,sublime流,macbook流,虽然也能写ts,但你没法跟他们说用vs写有多么好); 二、即便你告诉他们TS有多好,可是几十人的团队里总有一半以上的人不想学新的东西(固然我没有权利说不学新东西的人应该所有滚动,由于互联网打工的是大爷,想跳槽随便找工做); 三、JSer不少没有学习OOP开发经验(特别是从设计/页面重构转过来的); 四、不少人接触TS前根本没学过JS,常常有人问“使用TS如何写元素拖拽”这样的问题(那是DOM API好伐,不过你跟初学者很难解释明白); - 来源:知乎 - 连接:https://www.zhihu.com/question/21879449 - 做者:Fula Li
凡是能够写 JavaScript 的均可以使用 TypeScript。