认识typeScript
什么是TypeScript?
TypeScript能做什么?
为什么要用TypeScript?
什么时候用TypeScript?
- TypeScript 核心:解决 JavaScript 编程中的类型安全问题
什么是类型安全?
什么是类型系统?
- 无论我们通过什么语言去写程序,都避免不了出现一些错误,错误类型有许多种类:
- 数据(类型)使用错误
- 语法错误
- 逻辑错误
类型错误
- js是一个动态类型语言,变量的类型是动态,可变的,不确定,数据的类型是在运行过程中随时可变的,那么我们就不能在运行之前对它进行检测了。
类型系统
静态类型语言
- 就是把程序的变量存储的数据类型给固定下来(变量一旦声明,就不能改变存储的数据类型了),那么这个时候,我们的程序就可以根据这个特性,来检测你在程序使用这个变量的时候有没有用对。
- 类型标注
- 给变量声明(标注)类型
- 类型检测
- 依据类型标注进行检测
额外的一个好处
- 编译器(类型检测系统)既然能检测出来错误的使用了某种类型的数据,那么它是不是也可以做智能类型提示系统呢?
- 比如,这个类型是否有这个属性,有这个方法,是不是类型标注出来的,然后编译器根据这个标注类型结构进行检测的,那么是否就可以提示这个类型结构了
环境搭建
- TypeScript 编写的程序并不能直接通过浏览器运行,我们需要先通过 TypeScript 编译器把TypeScript 代码编译成 JavaScript 代码
- TypeScript 的编译器是基于 Node.js 的,所以我们需要确保安装了Node.js
安装 TypeScript 编译器
- 通过 NPM 包管理工具安装 TypeScript 编译器
npm i -g typescript
- 安装完成以后,我们可以通过命令 tsc 来调用编译器
# 查看当前 tsc 编译器版本
tsc -v
编写代码
- TypeScript 文件
// ./src/hello.ts
let str: string = '小陈';
- 默认情况下, TypeScript 的文件的后缀为 .ts TypeScript 代码
编译执行
- 使用我们安装的 TypeScript 编译器 tsc 对 .ts 文件进行编译
tsc ./src/hello.ts
- 默认情况下会在当前文件所在目录下生成同名的 js 文件
其他的编译选项
- 编译命令 tsc 支持许多编译选项,这里我先来了解几个比较常用的
–outDir
- 指定编译文件输出目录
tsc --outDir ./dist ./src/hello.ts
–target
- 指定编译的代码版本目标,默认为 ES3
tsc --outDir ./dist --target ES6 ./src/hello.ts
–watch
- 在监听模式下运行,当文件发生改变的时候自动编译
tsc --outDir ./dist --target ES6 --watch ./src/hello.ts
- 通过上面几个例子,我们基本可以了解 tsc 的使用了,但是大家应该也发现了,如果每次编译都输入这,么一大堆的选项其实是很繁琐的,好在TypeScript 编译为我们提供了一个更加强大且方便的方式,编译配置文件: tsconfig.json 我们可以把上面的编译选项保存到这个配置文件中
编译配置文件
- 我们可以把编译的一些选项保存在一个指定的 json 文件中,默认情况下 tsc 命令运行的时候会自动去加载运行命令所在的目录下的 tsconfig.json 文件,配置文件格式如下:
{
"compilerOptions": {
"outDir": "./dist",
"target": "ES2015",
"watch": true,
},
// ** : 所有目录(包括子目录)
// * : 所有文件,也可以指定类型 *.ts
"include": ["./src/**/*"]
}
- 有了单独的配置文件,我们就可以直接运行:
tsc
指定加载的配置文件
- 使用 --project 或 -p 指定配置文件目录,会默认加载该目录下的 tsconfig.json 文件
tsc -p ./configs
- 也可以指定某个具体的配置文件
tsc -p ./configs/ts.json