TypeScript教程(一)– TypeScript 入门

本系列讲解TypeScript,本文是入门,介绍TypeScript是什么,设置开发环境,创建第一个TypeScript程序,配置TypeScript编译器,调试TypeScript应用程序等。


什么是TypeScript

TypeScript是微软创建的,用来解决JavaScript的一些缺点。

Javascript就像一个没有任何纪律的孩子,为所欲为;而TypeScript则是一个遵守纪律的好孩子。

TypeScript可以帮助我们构建更健壮和可维护的应用程序。

TypeScript基于Javascript,任何Javascript文件都是有效的TypeScript文件。

TypeScript的优点如图:

先说静态类型,这被认为是TypeScript相比JavaScript的最大特性。静态类型的语言有C++, C#, Java等,而动态类型的语言有JavaScript, Python, Ruby等。动态语言带来了很多灵活性,但也会使程序出现不可预知的错误,因为它只在运行时才检测,比如下图右侧只有运行到Math.round(number)时才发现出错了。

TypeScript本质上就是是带有类型检查的 Javascript,使用TypeScript,我们明确设置变量的类型,这样在编译时就会发现错误,而不必等到运行时或单元测试时才发现错误。

另外的优点是,现在大多数代码编辑器都对 TypeScript 提供了很好的支持,它们可以检测变量的类型并提供了很多提高生产力的功能,例如代码的自动完成和重构。TypeScript 可以帮助我们编写更清晰、更简洁的代码。

我们可以在任何使用 Javascript 的地方使用TypeScript。

再来说说 TypeScript 的缺点。

一是需要转编译,目前的浏览器都很好地支持JavaScript,但不能保证全支持TypeScript,所以需要转译成JavaScript。

另一个缺点是,TypeScript需要遵守编码纪律,不像JavaScript这么自由。对于小项目,有人可能更喜欢JavaScript,但对中大型项目来说,TypeScript严格的编码规则是有好处的,否则排错的成本很可能是不可接受的。


设置开发环境

因为要用NPM安装TypeScript 编译器,所以需要安装Node。

访问 https://nodejs.org,安装Node. 在Linux比如Ubuntu下,官方的APT安装版本较低,可以使用snap安装。

sudo snap install node –classic

国内建议更换npm源:

npm config set registry https://registry.npmmirror.com

完成后,安装typescript:

sudo npm i -g typescript

-g 表示是全局安装,这样能在任何目录里都能使用 TypeScript。

查看 TypeScript版本:

tsc -v

当前的版本是 Version 5.4.2

接着需要安装代码编辑器,我们使用VSCode。

访问 https://code.visualstudio.com 并完成安装。


第一个 TypeScript 程序

创建一个目录:mkdir hello-world

再用vscode打开 hello-world目录,创建文件index.ts,TypeScript文件用的是ts扩展名。

TypeScript是JavaScript的超集,所以JavaScript的代码也是有效的,键入console.log(“hello world”),然后我们将该文件编译:

tsc index.ts

当前目录里自动增加了一个文件 index.js,查看内容与index.ts是一模一样的。因为我们在index.ts里未使用任何TypeScript的代码。

我们添加一些TypeScript代码:

let age: number =20

这里定义了 age 类型为 number,这样就不能再将字符串等其他类型的值或对象赋给 age,比如我们设置 age = “a”,将会提示出错。通过明确定义变量的类型,我们在编译时或编码时就会发现错误。

然后再编译 index.ts

tsc index.ts

编译生成的index.js内容则为:

var age = 20

var 是ES5及以下的用法,默认情况下,编译成JavaScript的ES5版本,因为几乎所有浏览器都支持JavaScript的老版本ES5。下一节我们会来讲解如何配置TypeScript的编译器,让其编译成新版本的JavaScript。

我们看到,编译成的JavaScript代码是 “var age=20″,没有任何类型信息,所以 index.ts的 age的类型 number 纯粹就是TypeScript编译器用于检查的。


配置 TypeScript 编译器

运行命令:

tsc –init

会创建一个文件 tsconfig.json

不要被全部的配置吓倒,我们只设置其中一小部分。

...
"target": "ES2016",
"module": "commonjs",
"rootDir": "./src", 
"outDir": "./dist",
"removeComments": true,
"noEmitOnError": true,
...

target设置成 ES2016, 可以根据实际配置更高版本,比如ES2021;

module配置,在后面介绍模块时会讲解;

rootDir,默认是当前目录,表示源代码的位置,我们配置成” ./src”,我们创建一个文件夹src, 并将index.ts移进去,并删除之前生成的index.js文件,

outDir, 我们设置成”./dist”,表示生成的JavaScript文件放在 ./dist目录

removeComments, 删除TypeScript代码的注释,这样生成的JavaScript代码更简短。

onEmitOnError, 默认情况下,即便有错误,编译器仍然生成JavaScript,开启这个选项,TypeScript检测到有错误时将停止生成JavaScript文件。

配置完成后,回到控制台,运行

tsc

注意我们不带文件 index.ts,表示编译全部ts 文件。

查看项目目录自动生成一个dist文件夹,生成的index.js文件就放在其中。


调试 TypeScript 应用程序

在tsconfig.json中启用 “sourceMap”:true, sourceMap是一个文件,用于映射TypeScript代码和生成的JavaScript文件。

重新编译

tsc

我们能看到在dist目录下新生成了一个index.js.map文件,该文件用于机器调使用,我们不必理解生成的内容。

点击调试按钮,提示我们创建launch.json文件,选择 Node.js,该文件用于告诉TypeScript如何调试应用程序。

在launch.json里,添加一行:

“preLaunchTask”:”tsc: build – tsconfig.json”

再添加一些代码,并设置断点,启动调试,可以很方便地查看相关变量,并逐行检查代码或进行函数体检查等。


小结

本文是TypeScript入门,介绍了TypeScript是什么,如何设置开发环境,配置TypeScript编译器,调试TypeScript应用程序。下一节开始介绍TypeScript基本知识。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注