TypeScript 团队发布了 TypeScript 6.0 Beta 版本,并将其定位为过渡版本。官方表示,TypeScript 6.0 预计是最后一个仍基于原有 JavaScript 代码库的主要版本。TypeScript 团队目前正在使用 Go 语言重写 TypeScript 编译器和语言服务,新代码库将作为 TypeScript 7.0 及后续版本的基础。因此,TypeScript 6.0 在产品节奏上承担着衔接 TypeScript 5.9 与 TypeScript 7.0 的桥梁作用,主要任务是帮助生态系统提前对齐 TypeScript 7.0 的发展方向。
官方提到,TypeScript 7.0 预计将在 TypeScript 6.0 之后不久发布。TypeScript 6.0 进入 Beta 阶段后,官方将其视为功能已趋于稳定的版本,后续重心将放在修复反馈问题和降低迁移成本上。官方也提醒,TypeScript 6.0 中开始出现的弃用选项,虽然可通过 tsconfig.json 设置暂时忽略,但这些弃用项在 TypeScript 7.0 的原生移植版中将被移除,建议开发团队先处理完弃用警告,再评估是否导入 TypeScript 7.0 或其原生预览版。
TypeScript 6.0 新增了 --stableTypeOrdering 标志,使跨版本的类型排序更具可控性,提供了一种更接近 TypeScript 7.0 的类型排序行为。官方指出,TypeScript 7.0 的重要改进之一是并行类型检查,能缩短整体检查时间,但并行会导致内部对象创建顺序变得不确定,从而引发声明文件输出或错误信息出现非确定性差异。TypeScript 6.0 通过 --stableTypeOrdering 将排序行为调整至更接近 TypeScript 7.0,以减少输出比对时的干扰,但可能带来明显的检查时间开销,在极端情况下可达 25%,因此该选项仅作为迁移诊断用途,不建议长期启用。
官方在 TypeScript 6.0 中对多项默认行为进行了调整,使其更严格、更贴近当前主流模块和运行环境标准,包括默认启用严格模式,采用更新的模块系统和编译目标,并缩小自动加载的类型声明范围。这些改动有助于新项目直接获得更优的默认体验,但对现有项目而言,升级后可能暴露出过去被宽松设置掩盖的类型错误,或因全局类型不再自动加载而需要手动补充相关配置。
除了过渡对齐外,TypeScript 6.0 也在模块解析和标准库类型上跟进生态系统的演进,例如 Node.js 近期引入的子路径导入语法,TypeScript 6.0 已在对应的解析模式下提供支持,缩小了工具链之间的差异。模块解析配置的限制也有所放宽,使仍以 CommonJS 为主要输出目标的项目在迁移路径上更具弹性。在库声明方面,TypeScript 6.0 新增了对 ES2025 标准 API 的类型支持,并将 Temporal API 的类型纳入可用范围。