全局安装TypeScript
npm install -g typescript
新增xxx.ts文件,通过tsc xxx.ts编译ts文件生成js。
- 出现了爆红的问题
- let编译为var,太古老了
原因
默认情况下,TS会做出下面几种假设:
- 假设当前的执行环境是dom
- 如果代码中没有使用模块化语句(import、export),便认为该代码是全局执行
- 编译的目标代码是ES3
有两种方式更改以上假设:
- 使用tsc命令行的时候,加上选项参数 【参数太多不推荐】
- 使用ts配置文件,更改编译选项 【推荐使用】
解决
tsc --init 生成 tsconfig.json 文件。这是一个很纯净的配置,把不要的配置暂时全删了
a. 使用了配置文件后,使用tsc进行编译时,不能跟上文件名,如果跟上文件名,会忽略配置文件。
========================================================
执行tsc, 每个ts文件都会编译,可是我只想编译src下面的ts文件,这才是符合我们预期的。
更改tsconfig.json配置,达到符合预期的效果
{
/* 编译选项 */
"compilerOptions": {
"target": "ES2016" /* 配置编译目标代码的版本标准 */,
"module": "commonjs" /* 配置编译目标使用的模块化标准 */,
"lib": ["ES2016"] /* 编译的环境,不会有dom相关的API了 */,
"outDir": "./dist" /* 编译的产物存放的位置 */
},
"include": ["./src"] /* 指定编译src下的所有ts文件 */
}
========================================================
tsconfig.json配置 --> "lib": ["ES2016"] /* 编译的环境,不会有dom相关的API了 */,
所以console.log报错了。这时候可以安装npm install -D @types/node node的声明文件,即可解决
========================================================
好麻烦啊,每次都要编译成js然后运行js。
使用 ts-node 简化。ts-node: 将ts代码在内存中完成编译,同时完成运行
npm install -g ts-node全局安装ts-node src/src1.ts运行,就会直接运行ts文件了,并且使用的是tsconfig.json配置
========================================================
还是好麻烦,每次改个文件还要手动运行
- nodemon: 用于检测文件的变化
npm i -g nodemon全局安装nodemon --exec ts-node src/src1.ts大功告成,改文件就可以检测了 4.nodemon -e ts --exec ts-node src/src1.ts优化一下,-e ts 表示ts文件修改才会被检测运行nodemon --watch src -e ts --exec ts-node src/src1.ts发现改了src以外的ts文件,也会被检测到, --watch src 表示监测src下的文件- 命令还是太长,在优化一下,写成脚本,以后运行
npm run dev即可
"scripts": {
"dev": "nodemon --watch src -e ts --exec ts-node src/src1.ts"
},