6在默认设置方面做了多处改进,使其更符合不断发展的JavaScript规范;同时,也淘汰了一些过时的编译目标。
现在,默认情况下严格模式是处于启用状态的。模块解析默认使用ES模块格式(`esnext`)。新的默认`target`设置与当前的ECMAScript标准保持一致(目前为`es2025`),这反映了绝大多数开发者的选择——他们很少会将代码编译成更早的版本。此外,未经过检查的侧效应导入也会被系统自动拦截(通过`noUncheckedSideEffect Imports`配置项实现)。如果新的默认设置会影响到某些项目,开发者仍然可以在`tsconfig.json`文件中手动调整这些设置。
TypeScript 6进一步与Web标准保持一致。它支持从Node.js模块中导入子路径内容,从而减少了对自定义路径解析方案的依赖;同时,它还加入了对于RegExp逃逸机制的ECMAScript提案的支持(该提案目前处于第四阶段开发阶段,因此已经正式成为语言规范的一部分),并且通过提供对`Iterable`类型的有效支持,进一步改善了DOM相关的类型处理能力。
此外,TypeScript 6也淘汰了一些过时的配置选项,比如ES5目标版本、AMD和UMD这样的模块系统、`baseUrl`配置项以及外部文件的打包功能。这些改变不仅使得代码实现更加简洁高效,也反映了这样一个事实:如今人们已经很少使用ES5目标版本了,CommonJS也被ESM打包工具所取代,而现代的JavaScript开发环境通常都是长期保持更新的。
TypeScript所进行的这些标准化工作以及合理的默认设置,为正在积极开发的TypeScript 7打下了坚实的基础。TypeScript 7将对现有的TypeScript编译器进行大规模重写,其目的就是解决那些在当前环境下已经成为开发者们面临的主要性能瓶颈问题——如今,TypeScript已经被广泛应用于各种大型全栈应用程序中,从使用Node.js实现的服务器端逻辑,到通过Electron开发的桌面应用,再到涵盖数据库和客户端的类型安全系统。在规模庞大的代码库中,TypeScript的编译过程往往会成为开发工作流程中的主要瓶颈,导致等待时间长达数分钟。
发布说明建议开发者尽快升级到TypeScript 6,以便为后续切换到TypeScript 7做好准备:
TypeScript 6.0被设计为一种过渡性版本。虽然在TypeScript 6.0中被标记为过时的功能,在将`”ignoreDeprecations”: “6.0”`这个配置项设置为启用状态时,这些功能仍然可以正常使用而不会出现错误,但它们将在TypeScript 7.0中被完全移除。因此,如果您在升级到TypeScript 6.0后看到了关于这些过时功能的警告,我们强烈建议您在尝试在项目中采用TypeScript 7.0(或它的预览版本)之前,先解决这些问题。
[…] 我们仍在继续开发TypeScript 7.0,并会定期发布其夜间构建版本。同时,我们也提供了这些预览版本,以及对应的VS Code扩展程序。我们非常欢迎大家对TypeScript 6.0和7.0提出反馈,如果条件允许的话,我们也鼓励您尝试这两个版本。
TypeScript是一款开源软件,采用Apache 2许可证进行发布。我们鼓励大家通过TypeScript的GitHub项目来为它的开发做出贡献并提供反馈。在提交代码时,请遵循TypeScript的贡献指南以及微软的开源行为准则。