已关闭 。这个问题需要更加集中。它当前不接受答案。
想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。
3年前关闭。
您能描述一下TypeScript语言是什么吗?
JavaScript或可用的库无法执行的工作是什么,这使我有理由考虑?
我最初是在TypeScript仍然热销时写这个答案的。五年后,这是一个不错的概述,但请查看以下Lodewijk的答案以获取更多深度
TypeScript是JavaScript的超集,主要提供可选的静态类型,类和接口。最大的好处之一是使IDE能够提供更丰富的环境,以便 在键入代码时 发现常见错误。
要了解我的意思,请观看有关该语言的Microsoft入门视频。
对于大型JavaScript项目,采用TypeScript可能会导致软件更强大,同时仍可以在运行常规JavaScript应用程序的地方进行部署。
它是开源的,但是如果您使用受支持的IDE,则只有在键入时才获得聪明的Intellisense。最初,这只是Microsoft的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; } }
这是它将产生的JavaScript
var Greeter = (function () { function Greeter(message) { this.greeting = message; } Greeter.prototype.greet = function () { return "Hello, " + this.greeting; }; return Greeter; })();
注意TypeScript如何定义成员变量和类方法参数的类型。转换为JavaScript时已将其删除,但IDE和编译器使用它来发现错误,例如将数字类型传递给构造函数。
它也能够推断出未明确声明的类型,例如,它将确定该greet()方法返回一个字符串。
greet()
许多浏览器和IDE通过Sourcemap提供直接调试支持。有关更多详细信息,请参见此堆栈溢出问题:使用Visual Studio调试TypeScript代码
我最初是在TypeScript仍然热销时写这个答案的。查看Lodewijk对这个问题的答案,以获取更多当前的详细信息。