微软为大型 JavaScript 应用而开发的 TypeScript 发布了 2.0 版本
TypeScript 是一种基于 JavaScript 衍生的语言，是由微软为了使大型 Web 应用开发更容易而创造的一种语言，现在已经发布了 2.0 里程碑版本。
TypeScript JavaScript
14.131.31.99
azure的管理门户就是使用这种语言开发的。
拿铁不加糖 [Chrome 53.0|Windows 10]
2016-09-25T11:28:02.000
118.112.204.106
是前台，还只是部分，不能把 HTML/CSS 遗忘了。
来自四川成都的 Chrome 53.0|GNU/Linux 用户
2016-09-25T20:38:17.000
116.4.125.31
typescript助力nodejs开发
来自广东东莞的 Chrome 52.0|GNU/Linux 用户
2016-09-26T09:20:56.000
TypeScript 是一种基于 JavaScript 衍生的语言，是由微软为了使大型 Web 应用开发更容易而创造的一种语言，现在已经发布了 2.0 里程碑版本。
TypeScript 是一种基于 JavaScript 衍生的语言，是由微软为了[使大型 Web 应用开发更容易](http://arstechnica.com/information-technology/2012/10/microsoft-typescript-the-javascript-we-need-or-a-solution-looking-for-a-problem/)而创造的一种语言，现在已经发布了 [2.0 里程碑版本](https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/)。


![](/data/attachment/album/201609/25/061450jz5opzpmxoxbb55g.jpg)


在用于大型开发时， JavaScript 由于其固有的特性而面临一些挑战。其它的静态编译语言，如 C#、Java 和 C++ 在每次开发人员敲下“编译”时会进行全面的错误检查，而 JavaScript 直到运行时才会做错误检查。这意味着，从输入错误到像对非数字进行数学运算这样的错误用法都根本不会遇到检查，所以，用户不走运的话就会遇到这些问题。而在 TypeScript 中，微软的目标是引入一些其它语言也提供的检查和校验，而依然保持和 JavaScript 的兼容性，并可以编译成 JavaScript。


根据介绍，TypeScript 2.0 引入了一些新功能，改进了性能、增强了 JavaScript 兼容性，并在 TypeScript 进行编译时扩大了错误检查的范围。TypeScript 2.0 中的一大进步就是给予开发人员对 `null` 值的更大控制。


![](/data/attachment/album/201609/25/062128z5970czv3b7qbb9v.jpg)


`null` 用于表示变量根本没有值，它被其发明人戏称为“[价值十亿美元的错误](https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare)”。一次又一次，程序总是由于没有正确检查一个值是否是 `null` 值而掉到坑里。但是不管好与不好，所有主流的编程语言都支持这个 `null` 的概念。


TypeScript 2.0 引入了[许多新的特性](https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript)，但是其中最大的特性就是对 `null` 值的控制。在 TypeScript 2.0 中，开发人员可以可以启用一种新的行为，以默认防止变量赋值为 null。当启用该选项时，默认情况下变量必须有一个值，且这个值不能是 `null`。这可以让编译器发现变量没有初始化的错误。


TypeScript 似乎赢得了许多 JavaScript 开发者的拥护，谷歌采用它来[开发 Angular 2 框架](https://blogs.msdn.microsoft.com/typescript/2015/03/05/angular-2-built-on-typescript/)，而 Visual Studio、Visual Studio Code、Eclipse、Emacs、Vim 等等开发环境也都支持 TypeScript。微软已经把它作为社区驱动的项目进行了开源，目前已经有超过 150 个独立贡献者参与了该项目，这已经是雷蒙德拥抱开源的成功典范之一。

