felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

TypeScript 简述 #86

Open felix-cao opened 5 years ago

felix-cao commented 5 years ago

一、TypeScript 简介

TypeScript 是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程, TypeScript 由微软开发, 代码开源在 Github 上,

它的第一个版本发布于 2012 年 10 月,经历了多次更新后,现在已成为前端社区中不可忽视的力量,不仅在 Microsoft 内部得到广泛运用,而且 Google 的 Angular2 也使用了 TypeScript 作为开发语言。

TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以不加改变的在TypeScript下工作。TypeScript是为大型应用之开发而设计,而编译时它产生 JavaScript 以确保兼容性。

二、TypeScript 特点

2.1 编译时类型检查

所有的动态语言,包括 JavaScript,其在编写过程中一些拼写错误,直到运行时才能发觉,即使我们编写大量单元测试也于事无补。TypeScrip 在这方面做了增强,其采用了静态代码分析技术,有自己的编译器,从而可以帮助我们发现这些错误,如果采用静态类型,TypeScript 会帮助我们注意对象中的各种属性,如果发生了拼写错误,编译器会产生编译时错误来发出警告。使用 TypeScript 的另一个巨大优点是:它提供了正式的、可验证的命名规则,从而可以方便大型团队之间的协作。我们恶意通过这种方式编写出易于理解的代码。

2.2 文本编辑器和IDE的支持更好

相对于 JavaScript 这种动态语言来讲,TypeScript 内置了使用元数据来给代码添加注解的特性,叫做类型注解,文本编辑器和IDE可以根据这些注解对我们的代码进行更好的静态分析,基于这一特性,可以提供更好的代码重构工具和自动完成功能,从而让我们在编写代码的时候效率更高、错误更少。

2.3. 他是JavaScript的超集

JavaScript(ES5、ES2015、ES2016)的所有特性 TypeScript 都支持,由于它基于最新版本的ECMAScript 标准,所以我们可以利用这门语言所提供的最前沿的语法。

2.4 支持可选的类型检查

如果由于某种原因我们不想显示定义变量和方法的类型,可以跳过类型定义。但是,请注意,这样就无法利用静态类型特性,也就无法利用前面说的那些优点了。

2.5 由Miscrosoft开发并维护

这门语言本身的代码实现质量非常高,并且不会毫无预兆地放弃支持。TypeScript 构建在世界上最好的编程语言专家所提供的作品之上。 不仅如此包括 Dojo2、Angular2 等都采用 TypeScirpt 作为其强烈推荐的第一语言。

2.6 他是开源的

我们可以公开自由的通过社区来提出建议特性并贡献代码,而且我们可以更容易的开发第三方扩展和工具,从而更好的扩展这门语言的使用范围。

2.7 提供更好的兼容性

我们可以将编写好的 TypeScript 编译成可读的 JavaScript 代码,编译时,可以指定目标 ECMAScript 版本,一旦编译完成,所有类型注解都会被删除。 ES5 的浏览器支持: 一般来说,除了针对个别特性的特殊说明,各大主流浏览器都支持es5,包括

Chrome 13+ Firefox 4+ Safari 5.1 Safari 5.1不支持 Function.prototype.bind。 IE 9 其中IE9不支持es的严格模式,从IE10开始支持。