你能描述一下 TypeScript 语言是什么吗?
JavaScript 或可用库不能做什么,这让我有理由考虑它?
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; } }
这是它会生成的 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()