typyscript编译async的问题
发布于 4 年前 作者 qyqx233 5609 次浏览 来自 问答

我用的node是最新的12.xx版本.,已经原生支持async/await了. 我用tsc编译ts的代码,生成的js里面还是带

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};

tsconfig里面的target已经设置到了es2020,并没有什么用. 请问能否不然ts转译async还是根本async就是语法糖,就算tsc不转node虚拟机也会转的??

3 回复
➜  test git:(master) ✗ cat test.ts 
async function main() {
  await Promise.all([])
}

➜  test git:(master) ✗ npx tsc --target esnext test.ts    
➜  test git:(master) ✗ cat test.js 
async function main() {
    await Promise.all([]);
}

应该是你配置错了

我知道什么原因了.我直接tsc的时候不知道为啥读取配置文件,tsc --build tsconfig.json 强制指定配置文件就好了,所以这是为啥…

@qyqx233 默认 tsc 命令不使用配置文件的,必须显式的指定

回到顶部