TypeScript环境搭建与编译执行
TypeScript 编写的程序并不能直接通过浏览器运行,需要先通过 TypeScript 编译器把代码编译成 JavaScript 代码
TypeScript 的编译器是基于 Node.js 的,需要先安装 Node.js
1.安装Node.js
2.安装 TypeScript编译器
npm i -g typescript
//查看当前 tsc 编译器版本
tsc -v
3.编写代码
TypeScript 的文件的后缀为 .ts
//index.ts
let text: string = 'TypeScript'
4.编译
当前目录下执行指令
tsc ./index.ts
默认情况下会在当前文件所在目录下生成同名的 js 文件
//index.js
var text = 'TypeScript';
编译指令选项
--outDir
指定编译文件输出目录
--target
指定编译的代码版本目标,默认为 ES3
--watch
在监听模式下运行,当文件发生改变的时候自动编译
//编译当前路径文件
tsc ./src/helloKaiKeBa.ts
//编译当前路径文件输出到dist目录
tsc --outDir ./dist ./src/helloKaiKeBa.ts
//编译当前路径文件输出到dist目录,js代码版本为ES6
tsc --outDir ./dist --target ES6 ./src/helloKaiKeBa.ts
//编译当前路径文件输出到dist目录,js代码版本为ES6,并开启监听模式,后续在ts文件写代码会自动编译。
tsc --outDir ./dist --target ES6 --watch ./src/helloKaiKeBa.ts
编译配置文件tsconfig.json
把编译的一些选项保存在一个指定的 json 文件中,
默认情况下 tsc 命令运行的时候会自动去加载运行命令所在的目录下的 tsconfig.json 文件
//tsconfig.json
{
"compilerOptions": {
"outDir": "../dist",
"target": "es5",
"watch": true
},
"include": ["../src/**/*"]
}
//命令行指令
tsc
也可以使用 --project 或 -p 指定配置文件目录或某个具体的配置文件
tsc -p ./configs
tsc -p ./configs/ts.json
语法转换
TypeScript 在编译过程中只会转换语法(比如扩展运算符,箭头函数等语法进行转换,对于API 是不会进行转换的(如promise),而是引入一些扩展库进行处理的。
如果我们的代码中使用了 target 中没有的 API ,则需要手动进行引入,默认情况下 TypeScript 会根据target 载入核心的类型库
target 为 es5 时: ["dom", "es5", "scripthost"]
target 为 es6 时: ["dom", "es6", "dom.iterable", "scripthost"]
如果代码中使用了这些默认载入库以外的代码,则可以通过 lib 选项来进行设置
https://www.typescriptlang.org/tsconfig/#lib
Object.assign({}, {x: 1, y: 'zmouse'}, {z: 2});
//属性“assign”在类型“ObjectConstructor”上不存在。是否需要更改目标库? 请尝试将 “lib” 编译器选项更改为“es2015”或更高版本。
//解决方案,配置项里,lib项增加es6库
{
"compilerOptions": {
"target": "es5",
"lib": ["es6","dom"]//lib项增加es6库
},
"include": ["./src/**/*"]
}