TypeScript的编译配置文件tsconfig.json中有许多配置项,本文简单对比编译目标环境的配置项(target)的设置。模块(module)不在本文讨论之内,是另外一个大话题。

实验对于target 分别取值es5, es2015, es2016, es2017时,输出。

文件1:index.ts

async function helloWorld(): Promise<string> {
const res = await fetch('/static/data.json');
const txt = await res.text();
return txt;
}
(async ()=>{
const txt = await helloWorld()
console.log(`async func: `, txt)
})()

执行tsc编译

tsc --target 'es3'    index.ts --outFile 'index.es3.js'    --lib 'es6','dom'
tsc --target 'es5' index.ts --outFile 'index.es5.js' --lib 'es6','dom'
tsc --target 'es6' index.ts --outFile 'index.es6.js'
tsc --target 'es2017' index.ts --outFile 'index.es2017.js'

结果:

es3, es5 内容一样,有64行;

es6有19行;

es2017和原文一样(调整了空行,补充了分号)

05-21 17:40