在node环境中搭建Typescript环境

791 阅读2分钟

在node环境中安装ts环境

安装ts环境

首先,需要使用npm安装ts全局环境,npm i -g typescript

安装完成后用tsc filname来编译ts文件

正常情况下,会报tsc错误,如下

image.png

解决办法,管理员运行powershell,输入set-ExecutionPolicy RemoteSigned命令,选择Y即可。

书写的ts文件index.ts

    let say: string = "hello";

生成的js文件index.js

    var say = "hello";

其中,ts文件中say会报错重复声明,因为ts并不知道index.js是生成的文件。另外index.js中的是var声明,具有全局作用域。

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

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

有两种方式更改以上假设

  1. 使用命令行的时候,加上选项,这种情况使用较少
  2. 使用ts配置文件,更改配置选项

ts的配置文件

  1. 新建tsconfig.json文件
  2. 命令行 tsc --init

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

常用的配置

{
    "compilerOptions": {
        "target": "ES2016", //配置编译目标代码的版本标准
        "module": "CommonJS", //配置编译目标代码的模块标准
        "lib": ["ES2016"],  //配置编译目标代码的环境
        "outDir": "./dist"
    },
    "include": ["./src"]
}

目标代码环境lib配置,不提供node环境,所以使用console.log()函数会报错。

我们需要安装一个第三方库@types/node@types是一个官方的类型库,其中包括了很多对js代

码的类型描述。

我们一般使用的第三方库是用js书写的,没有对类型的限制,可以在@types库中找,例如

Jquery:是用JS写的,没有类型检查

安装@types/jquery: 为jquery库添加类型定义

现在我们想运行ts文件,需要先使用tsc命令转换成index.js文件,再使用node ./dist/index.js命令运行。使用起来太繁琐。

使用第三方库简化流程

ts-node + nodemon

ts-node:将ts代码在内存中完成编译,同时完成于运行,不会生成额外的js文件

nodemon:监测文件的变化,在很多场景可以使用

使用方式:nodemon --exex ts-node src/index.ts

意思:监测文件变化、当文件发生变化,可以执行ts-node src/index.ts命令。

我们可以将此命令写进脚本

 "scripts": {
    "dev": "nodemon --exec ts-node src/index.ts"
  },

其中,可以在命令行中对nodemon进行限制

-e ts:监听文件扩展名,ts --watch src:监控的文件夹是src目录 因此,最终的命令为

 "scripts": {
    "dev": "nodemon --watch src -e ts --exec ts-node src/index.ts"
  },

运行时只需要使用npm run dev即可

点击前往文章github地址