TypeScript 配置

110 阅读2分钟

全局安装TypeScript

npm install -g typescript

新增xxx.ts文件,通过tsc xxx.ts编译ts文件生成js。

image.png

  1. 出现了爆红的问题
  2. let编译为var,太古老了
原因

默认情况下,TS会做出下面几种假设:

  1. 假设当前的执行环境是dom
  2. 如果代码中没有使用模块化语句(import、export),便认为该代码是全局执行
  3. 编译的目标代码是ES3

有两种方式更改以上假设:

  1. 使用tsc命令行的时候,加上选项参数 【参数太多不推荐】
  2. 使用ts配置文件,更改编译选项 【推荐使用】
解决

tsc --init 生成 tsconfig.json 文件。这是一个很纯净的配置,把不要的配置暂时全删了

image.png a. 使用了配置文件后,使用tsc进行编译时,不能跟上文件名,如果跟上文件名,会忽略配置文件。

========================================================
执行tsc, 每个ts文件都会编译,可是我只想编译src下面的ts文件,这才是符合我们预期的。

image.png

更改tsconfig.json配置,达到符合预期的效果

{
  /* 编译选项 */
  "compilerOptions": {
    "target": "ES2016" /* 配置编译目标代码的版本标准 */,
    "module": "commonjs" /* 配置编译目标使用的模块化标准 */,
    "lib": ["ES2016"] /* 编译的环境,不会有dom相关的API了 */,
    "outDir": "./dist" /* 编译的产物存放的位置 */
  },
  "include": ["./src"] /* 指定编译src下的所有ts文件 */
}

image.png

========================================================

tsconfig.json配置 --> "lib": ["ES2016"] /* 编译的环境,不会有dom相关的API了 */, 所以console.log报错了。这时候可以安装npm install -D @types/node node的声明文件,即可解决 image.png

========================================================

好麻烦啊,每次都要编译成js然后运行js。

使用 ts-node 简化。ts-node: 将ts代码在内存中完成编译,同时完成运行

  1. npm install -g ts-node全局安装
  2. ts-node src/src1.ts 运行,就会直接运行ts文件了,并且使用的是tsconfig.json配置
========================================================

还是好麻烦,每次改个文件还要手动运行

  1. nodemon: 用于检测文件的变化
  2. npm i -g nodemon 全局安装
  3. nodemon --exec ts-node src/src1.ts 大功告成,改文件就可以检测了 4.nodemon -e ts --exec ts-node src/src1.ts 优化一下,-e ts 表示ts文件修改才会被检测运行
  4. nodemon --watch src -e ts --exec ts-node src/src1.ts 发现改了src以外的ts文件,也会被检测到, --watch src 表示监测src下的文件
  5. 命令还是太长,在优化一下,写成脚本,以后运行npm run dev 即可
 "scripts": {
    "dev": "nodemon --watch src -e ts --exec ts-node src/src1.ts"
  },

image.png