由微软推出的TypeScript自从一推出就广受关注,现在无论开发前端React/Vue,还是后端API,很多项目中都广泛接受了TypeScript。TypeScript (TS)是JavaScript的超集,也就是说,JS支持有的在TS中都有,除此之外,还有一些TS独特的特性。

TS的特性
顾名思义,TS中最为重要的一个特性就是其严格的类型检测机制,这就为程序的健壮性提供了保证。和TS相比,JavaScript是动态类型,这就更加容易引入运行时错误。
同时,它支持箭头函数,const, let等现代语言特性,还支持泛型,接口等高级特性。
目前无论在后台Node.js,还是在浏览器中,TypeScript的程序都无法直接运行,需要编译为JavaScript程序后才能运行。
环境配置和安装
首先需要安装Node.js
之后安装typescript
npm i typescript -g
懒人版测试环境
直接访问这个网址,就可以在线测试TS程序:https://www.typescriptlang.org/play
测试
创建一个文件,比如01.ts:
function demo() {
let s: string = "Hello, TS!";
console.log(s);
}
demo();
第一种运行方式:编译+运行
编译TS到JS:
tsc 01.ts
运行JS:
node 01
第二种运行方式:直接运行
安装对应的包:
npm i -g ts-node @types/node
注意,必须安装 @types/node 否则会报错。
接下来就可以直接运行TypeScript了。其实,其运行机制也是分为两步:首先转换为JS,然后运行转换后的JS。
ts-node 01.ts
关于tsconfig.json
这个文件的作用就是设定一些编译TS时的默认选项。如果项目中没有这个文件,可以通过如下命令来创建:
tsc --init
可以看到,tsconfig.json文件已经创建好了。接下来就可以通过运行如下命令编译当前目录下所有的TS文件了:
tsc
下面介绍一下一些常用选项:
| 设置 | 作用 |
|---|---|
| incremental | 是否对项目进行递增式编译,如设置为true,tsc会创建一个tsconfig.tsbuildinfo文件保存编译信息 |
| noImplicitAny | 声明当类型为任意(any)的时候,是否需要注解 |
| noUnusedLocals | 当变量被声明但并未被读取时是否报错 |
| outFile | 生成的单一js文件名 |
| outDir | 生成的js文件路径 |
| removeComments | 在编译TS的时候去除注释 |
| rootDir | ts文件路径 |
| sourceMap | 存储TS及JS源代码对应行数,一旦出错,可以报出TS文件行数,便于排错 |
| strictNullChecks | 是否强制进行空值检测 |
| target | 转换后JS的版本号,比如ES5, ES2016 |