我最初写的这个答案当Typescript仍然热卖时。五年后,这是一个很好的概述,但请看下面的Lodewijk答案更深入
1000英尺的视图......
TypeScript是JavaScript的超集,主要提供可选的静态类型,类和接口。其中一个重要好处是使IDE能够在您键入代码时提供更丰富的环境来发现常见错误。
要了解我的意思,请观看Microsoft关于该语言的介绍性视频。
对于大型JavaScript项目,采用TypeScript可能会产生更强大的软件,同时仍可部署常规JavaScript应用程序。
它是开源的,但如果您使用支持的IDE,则只能在键入时获得聪明的Intellisense。最初,这只是微软的Visual Studio(也在Miguel de Icaza的博客文章中提到)。目前,其他IDE也提供TypeScript支持。
还有其他类似的技术吗?
有CoffeeScript,但这确实有不同的用途。恕我直言,CoffeeScript为人类提供了可读性,但TypeScript还通过其可选的静态类型为工具提供了深度可读性(请参阅最近的博客文章以获得更多批评)。还有Dart,但这完全取代了JavaScript(虽然它可以生成JavaScript代码)
例
举个例子,这里有一些TypeScript(您可以在TypeScript Playground中使用它)class Greeter {
greeting: string;
constructor (message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}}
这是它将产生的JavaScriptvar Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
};
return Greeter;})();
注意TypeScript如何定义成员变量和类方法参数的类型。这在转换为JavaScript时被删除,但IDE和编译器使用它来发现错误,例如将数字类型传递给构造函数。
它还能够推断未明确声明的类型,例如,它将确定该greet()方法返回一个字符串。
调试Typescript
许多浏览器和IDE通过源映射提供直接调试支持。有关更多详细信息,请参阅此Stack Overflow问题:使用Visual Studio调试TypeScript代码
想知道更多?
我最初写的这个答案当Typescript仍然热卖时。查看Lodewijk对此问题的回答,了解更多当前详细信息。