js项目转ts
本文来源:js进化,迁徙到typescript
一,首先使用重命名工具renamex-cli将项目目录./src中的所有js文件后缀 批量改成.ts
renamex-cli将项目目录./src中的所有js文件后缀 批量改成.tsnpm i -g renamex-cli
//then
renamex start -p "src/**/*.js" -r "[name].ts" -t no二,根目录新建并配置tsconfig.json
tsconfig.json{
"compilerOptions": {
"target": "es2017",//将编译的.ts文件编译为指定标准js
"module": "commonjs",//模块规范
"sourceMap": true, //生成资源映射,以便于调试
"noEmitHelpers": true,//不生成辅助方法,对应importHelpers
"importHelpers": true,//引用外部的辅助方法
"allowUnreachableCode": true,//允许代码中途return产生无法执行代码
"lib": ["es2017"],//定义编译时依赖
"typeRoots": ["node_modules/@types"],//定义类型定义文件的根目录
"types": [
//添加新的类型定义库如 @types/lodash 需要在此处定义
"lodash"
],
"outDir": "./build",//编译输出文件目录,默认等于rootDir
"rootDir": "./src" //源代码目录在这个目录里编写你的ts文件
},
"exclude": [
"node_modules", //忽略目录
"**/*.test.ts" //忽略指定类型文件
]
}compilerOptions -> target 配置项,表明需要将ypescript编译到哪一个js标准 可以根据自己的实际需求配置 es5|es6|es7... 如果应用在前端可以改为es5
三,安装typescript
npm install --save-dev typescript可以在npm run scripts里使用
tsc命令将.ts文件编译为.js文件"tsc": "tsc"编译.ts文件"tsc:w": "tsc -w"监听.ts文件 实时编译属于开发时依赖放在
devDependencies配置里
npm install --save tslib从外部引入额外的辅助方法集
会在编译后的
.js文件里自动require('tslib')编译后的代码更美观,不用在每个编译后的
.js文件都生成辅助方法减少前端场景中打包体积
属于运行时依赖,无须主动引用,必须放在
dependencies配置里需要配置
tsconfig.js -> compilerOptions -> importHelpers:true
四,安装 typescript 类型定义(@types/[package])
npm install --save-dev @types/node (nodejs环境)
其它比如
lodash,react,vue,koa,jquery都已经有了相关的类型定义库配置类型定义库,需要将
tsconfig.json->compilerOptions->types添加对应的库名
五,为项目中的全局变量创建自定义类型定义文件globals.d.ts
globals.d.tsLast updated
Was this helpful?