🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
你是否听过 TypeScript? TypeScript 是微软开发的 JavaScript 的超集,TypeScript兼容JavaScript,可以载入JavaScript代码然后运行。TypeScript与JavaScript相比进步的地方 包括:加入注释,让编译器理解所支持的对象和函数,编译器会移除注释,不会增加开销;增加一个完整的类结构,使之更新是传统的面向对象语言。 ### 为什么会有 TypeScript? JavaScript 只是一个脚本语言,并非设计用于开发大型 Web 应用,JavaScript 没有提供类和模块的概念,而 TypeScript 扩展了 JavaScript 实现了这些特性。 TypeScript 主要特点包括: * TypeScript 是微软推出的开源语言,使用 Apache 授权协议 * TypeScript 是 JavaScript 的超集. * TypeScript 增加了可选类型、类和模块 * TypeScript 可编译成可读的、标准的 JavaScript * TypeScript 支持开发大规模 JavaScript 应用 * TypeScript 设计用于开发大型应用,并保证编译后的 JavaScript 代码兼容性 * TypeScript 扩展了 JavaScript 的语法,因此已有的 JavaScript 代码可直接与 TypeScript 一起运行无需更改 * TypeScript 文件扩展名是 ts,而 TypeScript 编译器会编译成 js 文件 * TypeScript 语法与 JScript .NET 相同 * TypeScript 易学易于理解 ### 语法特性 * 类 Classes * 接口 Interfaces * 模块 Modules * 类型注解 Type annotations * 编译时类型检查 Compile time type checking * Arrow 函数 (类似 C# 的 Lambda 表达式) ### JavaScript与TypeScript 的区别 TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。 ### 编辑器支持 Visual Studio 2012 支持 TypeScript 模块/语法高亮,这个需要安装 TypeScript 插件。而类似 Sublime Text, Vim and Emacs 编辑器支持语法高亮。 在 VS 2012 编辑器中,还提供了重构和 Go To Definition 等功能。 ![](https://box.kancloud.cn/2016-05-19_573d2cf614b9e.png) 注意: TypeScript 不依赖任何 IDE,你可在任何应用中自行将 TypeScript 编译成 JavaScript。 ### 如何获取 可通过以下两个方法来安装 TypeScript: * 通过 Node.js 包管理器 (npm) * 通过与 Visual Studio 2012 继承的 MSI. (Click here to download) 注意: 需要关闭其他应用程序来避免安装时的一些问题。 下面是通过 MSI 文件安装时的界面: ![](https://box.kancloud.cn/2016-05-19_573d2cf638521.gif) 如果你只是想先看看 TypeScript 而已,可 click here. ### 如何编译 TypeScript 要在应用中使用 TypeScript 必须先编译,编译的结果是生成 js 文件,你可通过 TypeScript 编译器 tsc 来完成这个过程。 如果你在 Visual Studio 2012 中使用 TypeScript,它会自动将 ts 文件编译成 js 文件。 TypeScript 编译器模板被安装在如下路径: C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.0.0 或者是: C:\Program Files\Microsoft SDKs\TypeScript\0.8.0.0 要编译 TypeScript 文件,可使用如下命令: tsc filename.ts 一旦编译成功,就会在相同目录下生成一个同名 js 文件,你也可以通过命令参数来修改默认的输出名称。 如果你希望 TypeScript 被自动编译,你可以了解下 Sholo.TypeScript.Build , Web Essentials 2012. TypeScript 项目/文件 模板 一旦你在 Visual Studio 2012 上安装了插件,你会获得如下模板: HTML Application with TypeScript ![](https://box.kancloud.cn/2016-05-19_573d2cf659202.png) MVC – TypeScript Internet Application ![](https://box.kancloud.cn/2016-05-19_573d2cf672d25.png) TypeScript File ![](https://box.kancloud.cn/2016-05-19_573d2cf690752.png) 首个用 TypeScript 编写的 HTML 应用 现在我开始用 TypeScript 创建一个简单的 HTML 应用。 首先通过 File -> New-Project 新建项目: ![](https://box.kancloud.cn/2016-05-19_573d2cf6b1ac0.png) 输入必要信息,点击 Ok 按钮,创建后项目模板如下: ![](https://box.kancloud.cn/2016-05-19_573d2cf6d5f73.png) 我们将看到 app.js 依赖于 app.ts,默认的 app.ts 文件包含类和构造函数等等,如下图: ![](https://box.kancloud.cn/2016-05-19_573d2cf6e881c.png) TypeScript 文件将会被编译为 JavaScript (app.js),下面是编译后的 JavaScript 代码: ![](https://box.kancloud.cn/2016-05-19_573d2cf70fb6f.png) 然后我们可以在页面中引用 JavaScript ![](https://box.kancloud.cn/2016-05-19_573d2cf7230f0.png) 当你构建或者重新构建项目时,你将看到提示是否重新编译 TypeScript 的信息: ![](https://box.kancloud.cn/2016-05-19_573d2cf73d046.png) 如果在 .??proj 文件中有如下内容将会被自动编译: ![](https://box.kancloud.cn/2016-05-19_573d2cf751e16.png) 当你运行此应用时会在页面上显示当前的日期和时间 ![](https://box.kancloud.cn/2016-05-19_573d2cf766a94.gif) 你也可以在线玩玩:Playground ![](https://box.kancloud.cn/2016-05-19_573d2cf779130.png) #### 更多阅读资料 TypeScript 微软官方网站 http://www.typescriptlang.org/ TypeScript 在线玩- http://www.typescriptlang.org/Playground/ TypeScript 源码 [typescript.codeplex.com](http://www.codeproject.com/Articles/470129/typescript.codeplex.com) Anders Hejlsberg: [Introducing TypeScript](http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript) 总结 这篇文章中我们简单的介绍了如何使用 TypeScript,希望你能喜欢或者觉得对你有帮助。 [英文原文](http://www.codeproject.com/Articles/470129/TypeScript-Superset-of-JavaScript),[OSCHINA原创翻译](http://www.oschina.net/question/12_72250)