导读:微软宣布将一直致力于创建 TypeScript 编译器和工具的本机实现,此举将显著改善编辑器启动时间,减少构建时间,并大幅减少内存使用量。
TypeScript 是一种基于 JavaScript 构建的语言。根据TypeScript 首席架构师 Anders Hejlsberg (安德思·海尔斯伯格)的说法,使用 JavaScript 确实存在一定的局限性。
“自从十多年前 JavaScript 问世以来,TypeScript 一直都是用它编写的,”他说,“这带来了很多优点,但也带来了一些挑战,特别是在性能和可扩展性方面。JavaScript 运行时平台确实针对 UI 和浏览器使用进行了优化,而对编译器和系统级工具等计算密集型工作负载的优化程度则不高。”
Hejlsberg 表示,用户最常报告的问题之一是他们常遇到内存不足的情况,尤其是在代码库增长时。“我们可能已经达到了 JavaScript 所能发挥的极限,”他说。
目前TypeScript代码库正在移植到 Go ,以实现本机实现。正如 Hejlsberg 所说,这种语言最适合他们想要实现的目标。
“这是我们可以获得的最低级语言,它为我们提供了在所有平台上完全优化的本机代码支持、对数据布局的出色控制、拥有循环数据结构的能力等等。通过垃圾收集器为开发者提供自动内存管理,以及出色的并发访问能力,”Hejlsberg 这样补充说道。
该原生实现的功能完整版本预计要到今年晚些时候才会推出,但这个新实现已经可以加载许多流行的 TypeScript 存储库,包括 VS Code、Playwright、TypeORM、date-fns 等。
基于 JavaScript 的 TypeScript 需要 77.8 秒来编译 VS Code 代码库,而本机实现只需要 7.5 秒,这是一个 10 倍的改进。Playwright 使用新实现需要 1.1 秒,而之前需要 11.1 秒。
Hejlsberg 在一篇博文中这样写道:
“我们对这一大规模速度提升所创造的机会感到非常兴奋。曾经看似遥不可及的功能现在已经触手可及。TypeScript 可以在整个项目中提供即时、全面的错误列表,支持更高级的重构,并提供以前计算成本过高的更深入的洞察。这一新基础超越了当今开发人员的体验,并将使下一代 AI 工具能够增强开发,为学习、适应和改善编码体验的新工具提供支持。”
根据微软称,当该原生实现与当前版本的 TypeScript(最新版本为 TypeScript 5.8)达到同等水平时,它将作为 TypeScript 7.0 发布。它将在 6.x 版本中继续发布基于 JavaScript 的版本,并将引入更改和弃用以使其与原生代码库保持一致。
一些项目将在原生 TypeScript 7 发布时切换到原生 TypeScript 7,其他一些项目可能依赖于 API 功能、遗留配置和其他限制,而这些限制将要求它们使用基于 JavaScript 的 TypeScript 6。
“认识到 TypeScript 在 JS 开发生态系统中的关键作用,我们仍将继续维护 6.x 系列的 JS 代码库,直到 TypeScript 7+ 达到足够的成熟度和采用率。我们的长期目标是尽可能保持这些版本的一致性,以便您可以在满足要求后立即升级到 TypeScript 7,或者在必要时回退到 TypeScript 6,”Hejlsberg 对开发者们发了多颗定心丸。
微软计划在未来几个月分享更多的信息,但目前已整理了一份常见问题解答,并将于 3 月 13 日美国东部时间下午 1 点 | 太平洋时间上午 10 点 的TypeScript Discord上正式发布。
作者:场长
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。