更改打字稿目标会影响编译性能吗?

Posted

技术标签:

【中文标题】更改打字稿目标会影响编译性能吗?【英文标题】:Does changing typescript target affect compilation performance? 【发布时间】:2019-04-18 08:34:04 【问题描述】:

由于浏览器实现了 typescript 的所有功能,将编译目标从 es5 更改为 es6(或最接近 typescript 当前支持的目标)是否会减少 typescript 文件的编译时间?

打字稿的哪个编译步骤花费的时间最多?

我们是否可以关闭编译器类型检查器,因为无论如何我们都在运行一个语言服务器来进行检查(编译器有时会遗漏错误)?

【问题讨论】:

类型检查耗时最长,我预计目标会产生一些影响,但影响最小 【参考方案1】:

我只是通过编译我的一个具有不同目标的中型 TypeScript 项目对此进行了一些实验。这些结果代表每个目标 20 次构建的平均时间(TypeScript 版本 3.4.2)

+--------+----------+
| Target | Duration |
+--------+----------+
| es3    | 10207ms  |
| es5    | 9103ms   |
| es6    | 8122ms   |
| es2015 | 7991ms   |
| es2016 | 7988ms   |
| es2017 | 7966ms   |
+--------+----------+

所以看来你是对的,切换到新目标后性能有所提高,但与 es2015 相比,这些改进似乎微不足道。

【讨论】:

我敢打赌,这还取决于代码库中使用的功能数量,这些功能不受当前目标支持,应该进行转换

以上是关于更改打字稿目标会影响编译性能吗?的主要内容,如果未能解决你的问题,请参考以下文章

编译打字稿而不转译异步函数

如何使用 npm 命令编译打字稿?

在 C# 中以编程方式编译打字稿?

通过webpack生产模式编译时如何忽略打字稿错误

编译节点模块时出现打字稿错误

打字稿更改后nodemon没有重新启动