Javascript 在不传输异步函数的情况下编译typescript

Javascript 在不传输异步函数的情况下编译typescript,javascript,typescript,async-await,ecmascript-2017,Javascript,Typescript,Async Await,Ecmascript 2017,是否有一种方法可以使用TypeScript编译器仅删除类型注释,而不传输异步函数?类似于{target:'esInfinite'}选项?原因是:有些浏览器已经支持异步函数,所以我希望有一个不影响这些函数的构建目标 输入示例: async function foo(a : number) : Promise<void> {} 已请求此功能。针对es2016和es2017的目标应在里程碑和中提供。在您的tsconfig.json中,将您的目标更改为es2017,然后它将保留异步/等待

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

输入示例:

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

已请求此功能。针对es2016和es2017的目标应在里程碑和中提供。

在您的
tsconfig.json
中,将您的目标更改为
es2017
,然后它将保留
异步/等待

{
  "compilerOptions": {
    .....
    "target": "ES2017",
    .....
  }
}
请确保您的运行时在本地支持它


注:自2018年4月起,AWS Lambda现在支持Nodejs 8。您应该可以使用上面的配置。

有一个方法可以添加对ES2017的支持,但在这之前,据我所知,这还不是最早的方法。我们现在使用TypeScript 4.3,将“target”设置为“ES2017”将保留使用“target”和“es2016”的异步/等待语句,将使用
var\u waiter
输出一个polyfill。
{
  "compilerOptions": {
    .....
    "target": "ES2017",
    .....
  }
}