TypeScript 2.1 async/await ES5 __awaiter 和 __generator 为每个 ts 文件生成

Posted

技术标签:

【中文标题】TypeScript 2.1 async/await ES5 __awaiter 和 __generator 为每个 ts 文件生成【英文标题】:TypeScript 2.1 async/await ES5 __awaiter and __generator is generated for every ts file 【发布时间】:2017-03-22 17:46:19 【问题描述】:

我正在试验新的 TypeScript rc-release 以获得对 ES5 的 asnc/await 支持。

但是我在生成的 __awaiter 和 __generator 方法中遇到了一个奇怪的行为,如果不使用 outFile 编译器选项,它们似乎是为每个单独的 ts 文件生成的。

有没有办法只生成 __awaiter 和 __generator 方法的单个实例,同时仍然不使用 outFile? 我不想使用 outFile 标志的原因是我目前使用 webpack 进行捆绑,因为我需要支持 html 模板文件的导入。

【问题讨论】:

可以使用common chunks plugin + deddupe plugin,这样可以减少这种重复 【参考方案1】:

使用新的--importHelpers 编译标志。 Docs

【讨论】:

【参考方案2】:

tsconfig.json中,"compilerOptions"下添加:

`"importHelpers": true`

将 typescript helper 库安装为依赖项:

npm install tslib --save

Typescript 将在需要时尝试导入帮助程序,Webpack 将自动捆绑 tslib 一次。如果你要发布一个库,你可以告诉 webpack 考虑 tslib 一个外部的 the externals option。

【讨论】:

以上是关于TypeScript 2.1 async/await ES5 __awaiter 和 __generator 为每个 ts 文件生成的主要内容,如果未能解决你的问题,请参考以下文章

在 CRA 2.1 Typescript 中导入时 ESLint 需要“.ts”

白鹭直播间:聊聊Egret引擎4.0 与 TypeScript 2.1~

ThinkJS 2.1:支持 TypeScript,性能提升 90%

TypeScript 2.1 async/await ES5 __awaiter 和 __generator 为每个 ts 文件生成

如何获取特定版本的 Jquery(例如 3.2.1)的 TypeScript 定义文件?

TypeScript入门基础