编译打字稿而不转译异步函数
Posted
技术标签:
【中文标题】编译打字稿而不转译异步函数【英文标题】:Compile typescript without transpiling async functions 【发布时间】:2017-02-16 13:37:57 【问题描述】:有没有办法只使用 TypeScript 编译器来删除类型注释,而不是转译异步函数?类似于 target: 'esInfinite'
选项?原因是:有些浏览器已经支持异步功能,所以我希望有一个不影响这些功能的构建目标。
示例输入:
async function foo(a : number) : Promise<void>
示例输出:
async function foo(a)
【问题讨论】:
有一个 pull request 来增加对 ES2017 的支持,但在此之前,据我所知还没有。 【参考方案1】:here 已请求此功能。目标 es2016 和 es2017 应该在 Community 里程碑和 TypeScript 2.1 中可用。
【讨论】:
我们现在处于 TypeScript 4.3,将“target”设置为“es2017”将保留使用“target”和“es2016”的 async / await 语句将使用var __awaiter
输出一个 polyfill。【参考方案2】:
在您的tsconfig.json
中,将您的目标更改为ES2017
,然后它将保留async/await
。
"compilerOptions":
.....
"target": "ES2017",
.....
请确保您的 run-time 本身支持它!!!
PS:截至Apr 2018
,AWS Lambda 现在支持 Nodejs 8。您应该可以使用上面的配置。
【讨论】:
以上是关于编译打字稿而不转译异步函数的主要内容,如果未能解决你的问题,请参考以下文章