本系列讲解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基本知识。