TypeScript是一种基于JavaScript衍生的语言,是由微软为了使大型Web应用开发更容易[1]而创造的一种语言,现在已经发布了2.0里程碑版本[2]。
在用于大型开发时,JavaScript由于其固有的特性而面临一些挑战。其它的静态编译语言,如C#、Java和C++在每次开发人员敲下“编译”时会进行全面的错误检查,而JavaScript直到运行时才会做错误检查。这意味着,从输入错误到像对非数字进行数学运算这样的错误用法都根本不会遇到检查,所以,用户不走运的话就会遇到这些问题。而在TypeScript中,微软的目标是引入一些其它语言也提供的检查和校验,而依然保持和JavaScript的兼容性,并可以编译成JavaScript。
根据介绍,TypeScript2.0引入了一些新功能,改进了性能、增强了JavaScript兼容性,并在TypeScript进行编译时扩大了错误检查的范围。TypeScript2.0中的一大进步就是给予开发人员对null值的更大控制。
null用于表示变量根本没有值,它被其发明人戏称为“价值十亿美元的错误[3]”。一次又一次,程序总是由于没有正确检查一个值是否是null值而掉到坑里。但是不管好与不好,所有主流的编程语言都支持这个null的概念。
TypeScript2.0引入了许多新的特性[4],但是其中最大的特性就是对null值的控制。在TypeScript2.0中,开发人员可以可以启用一种新的行为,以默认防止变量赋值为null。当启用该选项时,默认情况下变量必须有一个值,且这个值不能是null。这可以让编译器发现变量没有初始化的错误。
TypeScript似乎赢得了许多JavaScript开发者的拥护,谷歌采用它来开发Angular2框架[5],而VisualStudio、VisualStudioCode、Eclipse、Emacs、Vim等等开发环境也都支持TypeScript。微软已经把它作为社区驱动的项目进行了开源,目前已经有超过个独立贡献者参与了该项目,这已经是雷蒙德拥抱开源的成功典范之一。
[1]: