今天我们来看一看 TypeScript,它是一种可以编译成 JavaScript 的编程语言,是为构建大型复杂应用程序的开发者们而设计的。它继承了许多语言的编程思想,比如 C# 和 Java,并且相对于宽松自由式的 JavaScript,它添加了更多的规则和约束。
这个教程适用于相当精通 JavaScript,但刚接触 TypeScript 的开发者们。本教程涵盖了大部分的基础知识和主要特性,同时包含了许多带有注释的例子,来帮助你学习这门语言。
让我们开始吧!
使用 TypeScript 的好处
JavaScript 已经很棒了,你或许会怀疑,我真的需要学习 TypeScript 吗?从技术层面上来说,成为一位出色的开发者确实不需要学习 TypeScript,大多数人没有学习 TypeScript 也做的很好。但是,工作中使用 TypeScript 确实有许多好处:
- 基于静态类型,用 TypeScript 编辑代码有更高的预测性,更易纠错。
- 由于模块,命名空间和强大的面向对象编程支持,使构建大型复杂应用程序的代码库更加容易。
- TypeScript在编译为JavaScript的过程中,在它到达运行时间前可以捕获所有类型的错误,并中断它们的执行。
- 即将到来的 Angular 2 框架就是用 TypeScript 编写的,同时推荐开发人员在项目中也使用这种语言。
(上述原因中的)最后一点,实际上是对于很多开发者们来说最重要的一点,也是使他们对 TypeScript 产生兴趣的主要原因。Angular 2是现在最热门的框架之一,尽管开发者们可以一起使用常规的 JavaScript,但是大部分的教程和例子都是用 TypeScript 写的。随着Angular 2逐渐扩展自己的社区,越来越多的人将会选择 TypeScript。
最近 TypeScript 的人气上升趋势,数据来源于Google Trends。
安装TypeScript
该教程需要Node.js 和 Npm。如果没有安装请点击这里。
安装 TypeScript 最简单的方式就是通过 npm。使用以下命令行,可以全局安装 TypeScript 包,然后就可以在所有项目中使用TypeScript编译器了:
1 |
npm install -g typescript |
打开终端然后运行 tsc -v 命令来查看是否正确安装了 TypeScript.
1 2 3 |
tsc -v Version 1.8.10 |
支持 TypeScript 的文本编辑器
TypeScript是开源的项目,由微软开发和维护,因此最初只有微软的 Visual Studio 支持。现在,出现了更多本身支持或者通过插件支持 TypeScript 语法、智能提示、纠错、甚至是内置编译器的文本编辑器和IDE。
- Visual Studio Code– 微软另外一个轻量级的开源代码编辑器。内置支持TypeScript。
- Sublime Text的官方免费插件。
- WebStorm的最新版本带有内置支持。
- 其他包括Vim,Atom,Emacs等。
编译成 JavaScript
TypeScript 是 写在 .ts 文件(或者 JSX的.tsx)里,不能直接在浏览器端运行,需要首先转译为vanilla.js。这个编译的过程可以有多种实现方式:
- 在终端上运行前面提到的命令行工具
tsc
。 - 直接在 Visual Studio 或者其他 IDE 和文本编辑器上(操作)。
- 使用自动化构建工具,例如 gulp。
我们发现第一个方法是最简单的,对于初学者也是最容易接受的,因此我们将在教程中使用该方法。
下面的命令行把 TypeScript 文件 main.ts编译为 JavaScript 版本的 main.js。如果 main.js 已经存在的话会被覆盖。
1 |
tsc main.ts |
也可以通过列出所有的文件或者使用通配符来一次编译多个文件:
1 2 3 4 5 6 7 |
#Will result in separate .js files: main.js worker.js. tsc main.ts worker.ts #Compiles all .ts files in the current folder. Does NOT work recursively. tsc *.ts |
有更改的时候也可以使用 –watch 来自动编译成 TypeScript 文件:
1 2 |
# Initializes a watcher process that will keep main.js up to date. tsc main.ts --watch |
更高级的 TypeScript 用户也可以创建一个 tsconfig.json 文件,包含多种构建设置。因为配置文件在某种程度上是可以自动化进程的,所以在有许多.ts文件的大型项目中有配置文件是很方便的。可以在这里阅读到更多关于 tsconfig.json 的TypeScript 文档。
静态类型
TypeScript 一个很独特的特征是支持静态类型。意思就是可以声明变量的类型,(因此)编译器就可以确保赋值时不会产生类型错误。如果省略了类型声明,TypeScript 将会从代码中自动推测出正确的类型。
这有个例子。任意变量,函数自变量或者返回值在初始化时都可以定义自己的类型。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var burger: string = 'hamburger', // String calories: number = 300, // Numeric tasty: boolean = true; // Boolean // Alternatively, you can omit the type declaration: // var burger = 'hamburger'; // The function expects a string and an integer. // It doesn't return anything so the type of the function itself is void. function speak(food: string, energy: number): void { console.log("Our " + food + " has " + energy + " calories."); } speak(burger, calories); |
因为 JavaScript 是弱类型语言(即不声明变量类型),因此 TypeScript 编译为 JavaScript 时,(变量类型的声明)全部被移除:
1 2 3 4 5 6 7 8 9 10 11 |
// JavaScript code from the above TS example. var burger = 'hamburger', calories = 300, tasty = true; function speak(food, energy) { console.log("Our " + food + " has " + energyn>("Our " + food + " has " + energy看 TypeScript,它是一种可以编译成 JavaScript 的编程语言,是为构建大型复杂应用程序的开发者们而设计的。它继承了许多语言的编程思想,比如 C# 和 Java,并且相对于宽松自由式的 JavaScript,它添加了更多的规则和约束。
这个教程适用于相当精通 JavaScript,但刚接触 TypeScript 的开发者们。本教程涵盖了大部分的基础知识和主要特性,同时包含了许多带有注释的例子,来帮助你学习这门语言。 让我们开始吧! 使用 TypeScript 的好处JavaScript 已经很棒了,你或许会怀疑,我真的需要学习 TypeScript 吗?从技术层面上来说,成为一位出色的开发者确实不需要学习 TypeScript,大多数人没有学习 TypeScript 也做的很好。但是,工作中使用 TypeScript 确实有许多好处:
(上述原因中的)最后一点,实际上是对于很多开发者们来说最重要的一点,也是使他们对 TypeScript 产生兴趣的主要原因。Angular 2是现在最热门的框架之一,尽管开发者们可以一起使用常规的 JavaScript,但是大部分的教程和例子都是用 TypeScript 写的。随着Angular 2逐渐扩展自己的社区,越来越多的人将会选择 TypeScript。 最近 TypeScript 的人气上升趋势,数据来源于Google Trends。 安装TypeScript该教程需要Node.js 和 Npm。如果没有安装请点击这里。 安装 TypeScript 最简单的方式就是通过 npm。使用以下命令行,可以全局安装 TypeScript 包,然后就可以在所有项目中使用TypeScript编译器了:
打开终端然后运行 tsc -v 命令来查看是否正确安装了 TypeScript.
支持 TypeScript 的文本编辑器TypeScript是开源的项目,由微软开发和维护,因此最初只有微软的 Visual Studio 支持。现在,出现了更多本身支持或者通过插件支持 TypeScript 语法、智能提示、纠错、甚至是内置编译器的文本编辑器和IDE。
编译成 JavaScriptTypeScript 是 写在 .ts 文件(或者 JSX的.tsx)里,不能直接在浏览器端运行,需要首先转译为vanilla.js。这个编译的过程可以有多种实现方式:
我们发现第一个方法是最简单的,对于初学者也是最容易接受的,因此我们将在教程中使用该方法。 下面的命令行把 TypeScript 文件 main.ts编译为 JavaScript 版本的 main.js。如果 main.js 已经存在的话会被覆盖。
也可以通过列出所有的文件或者使用通配符来一次编译多个文件:
有更改的时候也可以使用 –watch 来自动编译成 TypeScript 文件:
更高级的 TypeScript 用户也可以创建一个 tsconfig.json 文件,包含多种构建设置。因为配置文件在某种程度上是可以自动化进程的,所以在有许多.ts文件的大型项目中有配置文件是很方便的。可以在这里阅读到更多关于 tsconfig.json 的TypeScript 文档。 静态类型TypeScript 一个很独特的特征是支持静态类型。意思就是可以声明变量的类型,(因此)编译器就可以确保赋值时不会产生类型错误。如果省略了类型声明,TypeScript 将会从代码中自动推测出正确的类型。 这有个例子。任意变量,函数自变量或者返回值在初始化时都可以定义自己的类型。
因为 JavaScript 是弱类型语言(即不声明变量类型),因此 TypeScript 编译为 JavaScript 时,(变量类型的声明)全部被移除:
|