编译Typescript时如何不转译async函数

12

有没有一种方法可以仅使用TypeScript编译器移除类型注释,但不转换异步函数?类似于{ target: 'esInfinite' }选项?原因是:已经支持异步函数的浏览器,希望有一个构建目标,这些函数不受影响。

async function foo(a : number) : Promise<void> {}

示例输出:

async function foo(a) {}

1
目前有一个pull request来添加对ES2017的支持,但在此之前,据我所知还没有。 - Sean Vieira
2个回答

20
在您的tsconfig.json中,将目标更改为ES2017,然后它将保留async/await
{
  "compilerOptions": {
    .....
    "target": "ES2017",
    .....
  }
}

确保你的运行环境原生支持它!!!

PS:截至2018年4月AWS Lambda现在支持Nodejs 8。你应该能够使用上面的配置。


0

我们现在使用的是TypeScript 4.3版本,将"target"设置为"es2017"将保留async/await语句。如果使用"target"和"es2016",则会输出一个polyfill,使用var __awaiter - Benny Code

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接