TypeScript 6 Beta版发布:开发者受邀升级以迎接Go重写计划

来源: InfoQ 话题 - 大前端

原文

最近,TypeScript团队发布了TypeScript 6的Beta版本。该版本是一个关键的过渡版本,而非全面的功能升级。它专注于消除技术债务和实现标准化,并为迎接TypeScript 7生态做准备。TypeScript 7将用Go语言重写TypeScript的代码,解决随着时间推移越来越严重的核心性能问题。

为了与不断发展的JavaScript规范保持一致,TypeScript 6在默认设置和过时编译目标弃用方面进行了几项改进。

严格模式现在默认启用。模块解析默认为ES模块(esnext)。新的默认target与当前的ECMAScript标准(目前是es2025)保持一致,这反映了绝大多数开发者的选择——他们极少需要向下转译至旧版本。同样地,未检查副作用的导入默认会被捕获(noUncheckedSideEffectImports设置)。如果新默认值会破坏项目,那么开发者仍然可以在tsconfig.json文件中显式设置默认值。

TypeScript 6进一步与Web标准对齐。它实现了Node.js模块规范中的子路径导入,减少了对自定义路径解析变通方案的依赖。新增对RegExp Escaping ECMAScript提案的支持(已进入第4阶段,已正式成为语言规范的一部分),并通过完善的Iterable支持增强了DOM类型系统。

TypeScript 6还弃用了ES5目标、AMD和UMD等模块系统、baseUrl配置和out-file打包功能。移除这些特性使实现更简洁,同时也反映出这样的事实:ES5目标已经很少使用,CommonJS正被ESM打包器取代,而现代JavaScript环境大多采用持续更新模式。

TypeScript团队所做的标准化工作及其合理的默认设置为当前正在积极开发当中的TypeScript 7铺平了道路。TypeScript 7用Go语言重写了TypeScript的编译器,目的是解决性能问题——随着TypeScript被广泛应用于大型全栈应用(从Node.js服务器端逻辑到桌面应用程序,如通过Electron实现,再到涵盖数据库到客户端的类型安全系统),这些性能问题已成为开发者面临的一个很大的痛点。在大型代码库中,TypeScript编译常被视为开发流程的主要瓶颈,等待时间甚至长达数分钟。

发布说明建议开发者迁移到TypeScript 6,从而为切换到TypeScript 7做好准备:

TypeScript 6.0被设计为一个过渡版本。当设置了"ignoreDeprecations": "6.0"时,TypeScript 6.0中弃用的选项将可以正常工作而不报错,但它们将在TypeScript 7.0(原生TypeScript版本)中被完全移除。如果你在升级到TypeScript 6.0后看到弃用警告,那么我们强烈建议你尝试在项目中采用TypeScript 7(或其原生预览版)之前解决它们。

[……] 我们还在继续开发TypeScript 7.0,并发布原生预览版的夜间构建以及一个VS Code扩展。我们非常欢迎您提供关于6.0和7.0的反馈,如果可以的话,我们希望您把两个版本都试一下。

TypeScript是遵循Apache 2许可的开源软件。欢迎通过TypeScript GitHub项目进行贡献和反馈,并应遵循TypeScript贡献指南微软开源代码行为准则

原文链接:

https://www.infoq.com/news/2026/02/typescript-6-released-beta/