ts学习

135 阅读1分钟

5.1 通过nodeJS

1.创建一个NodeJS的package.json文件 初始化代码 npm init -y

2.添加Typescript:npm install typescript --save-dev (深入理解Typescript不知道这本书怎么搞的,网上看了根本就没有npm run install这个命令)

3.添加node.d.ts: npm install @types/node --save-dev

4.为TypeScript选项初始化一个tsconfig.json文件,并添加一些相关选项 npx tsc --init --rootDir src --outDir lib --esModuleInterop --resolveJsonModule --lib es6, dom --module commonjs

对应的配置如下

// 创建了一个tsconfig.json格式的文件
  target: es2016
  module: commonjs
  lib: es6
  outDir: lib
  rootDir: src
  strict: true
  esModuleInterop: true
  skipLibCheck: true
  forceConsistentCasingInFileNames: true

现在就可以使用具有TypeScript的类型安全你和开发效率的所有内置的Node模块,比如import * as fs from 'fs'

关于实时编译和运行

ts-node: npm install ts-node --save-dev 使用ts-node来实时编译

添加nodemon: npm install nodemon --save-dev 只要对应的运行文件改变就会调用ts-node

给package.json添加一个script目标:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "npm run build:live",
    "build": "tsc -p .",
    "build:live": "cross-env nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts"
  },

另外现在执行npm start也可能会报错,说ts-node不是内部或外部命令,也不是可运行的程序。这一般是windows兼容性问题导致的,还需要安装cross-env来解决,npm install -g cross-env --save-dev后再对应的build:live中的前面添加cross-env即可。

另外还需要注意,整个项目在命名的时候一定别用驼峰命名,还是用短横线来命名,这是因为package.json文件中的name本身在js/ts找对应的文件夹的时候大小写是不作区分的。