TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个严格超集,并添加了可选的静态类型和使用看起来像基于类的面向对象编程语法操作Prototype。
TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个严格超集,并添加了可选的静态类型和使用看起来像基于类的面向对象编程语法操作 Prototype。C#的首席架构师以及 Delphi 和 Turbo Pascal 的创始人安德斯·海尔斯伯格参与了 TypeScript 的开发。
TypeScript 设计目标是开发大型应用,然后转译成 JavaScript。由于 TypeScript 是 JavaScript 的严格超集,任何现有的 JavaScript 程序都是合法的 TypeScript 程序。
TypeScript 支持为现存 JavaScript 库添加类型信息的定义文件,方便其他程序像使用静态类型的值一样使用现有库中的值。当前有第三方提供常用库如 jQuery、MongoDB、Node.js 和 D3.js 的定义文件。
TypeScript 编译器本身也是用 TypeScript 编写,并被转译为 JavaScript,以 Apache License 2 发布。
背景
TypeScript 起源于微软以及外部客户在开发大规模 JavaScript 应用的过程中遇到的语言本身的短板。处理复杂 JavaScript 代码的挑战使得自定义工具在开发这门语言时很有必要。
很多依赖于 JavaScript 的开发者通常用最终编译为 JavaScript 代码的另一种语言编写脚本,例如 CoffeeScript 和 Script#(读作 ScriptSharp)。一个明显的劣势是也许无法在那另一种语言中使用任何 JavaScript 细节的语言特性,如果那种语言不支持。
与 JavaScript 的兼容性
TypeScript 是 JavaScript 的一个超集。默认情况下编译器以 ECMAScript 3(ES3)为目标但 ES5 也是受支持的一个选项。一个 TypeScript 应用可以利用已存在的 JavaScript 脚本。编译后的 TypeScript 脚本也可以在 JavaScript 中使用。
现有框架如 jQuery 和 Node.js 等受到完全支持。这些库的类型声明在源代码中提供。
支持的浏览器和平台
运行于任何平台上的任何网页浏览器都可以运行 TypeScript:由于它仅仅是被编译为标准的 JavaScript,一个脚本既可以被预编译为 JavaScript,也可以通过为 TypeScript 包含 JavaScript 编译器实时编译。
开源
TypeScript 是开源的,其源代码可以在 Apache 2 License 下从 Github 获得。这个项目由 Microsoft 维护,但是任何人可以通过在 Github 项目页发送反馈、提出建议和提交 bugfixes 而做出贡献。
已有一些批评提到,TypeScript 鼓励强类型,当前只有 Microsoft Visual Studio 支持在该语言上方便开发。最初的方案是在其它的编辑器上带来强类型,IntelliSense, 代码完成和代码重构的功能,但这可能不是一个简单的任务。此外,支持 TypeScript 开发的 Visual Studio 扩展不是开源的。最好的 TypeScript 开发体验是在 Microsoft Windows 上,然而随着时间的流逝以及这种语言的开放性,加之编译器自我托管,而且用 TypeScript 自身写的,这很有可能会改变。通过编译器的源代码访问到 AST(抽象句法树)以及详细的语言规范文档,社群已开始构建一个跨平台的编辑器,利用和 Visual Studio 所用到的相同的语言服务以提供一个增强的编辑体验。编辑器仍然在概念检验的阶段,但已经运行于 Linux, OSX 和 Windows,提供功能强度相同的 IntelliSense,代码完成和句法高亮方法。