有没有一种方法可以仅使用TypeScript编译器移除类型注释,但不转换异步函数?类似于{ target: 'esInfinite' }
选项?原因是:已经支持异步函数的浏览器,希望有一个构建目标,这些函数不受影响。
async function foo(a : number) : Promise<void> {}
示例输出:
async function foo(a) {}
有没有一种方法可以仅使用TypeScript编译器移除类型注释,但不转换异步函数?类似于{ target: 'esInfinite' }
选项?原因是:已经支持异步函数的浏览器,希望有一个构建目标,这些函数不受影响。
async function foo(a : number) : Promise<void> {}
示例输出:
async function foo(a) {}
tsconfig.json
中,将目标更改为ES2017
,然后它将保留async/await
。{
"compilerOptions": {
.....
"target": "ES2017",
.....
}
}
确保你的运行环境原生支持它!!!
PS:截至2018年4月
,AWS Lambda现在支持Nodejs 8。你应该能够使用上面的配置。
这个功能已经在这里被请求了。针对es2016和es2017的定位应该在社区里程碑和TypeScript 2.1中可用。
var __awaiter
。 - Benny Code