TypeScript 5.0 发布:主要新特性全面解析

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

TypeScript 5.0 发布:开发者需要了解什么



TypeScript 团队发布了 5.0 版本——这是新编号系统下的第一个重大更新。开发者没有沿用熟悉的 4.x 系列,而是决定直接升级到 5.0,以强调内部变化的规模。新版本带来了几个期待已久的功能,并显著加快了编译器的运行速度。我们来分析一下那些今天就应该集成到项目中的主要变化。



TypeScript 5.0 的关键新特性



  • 装饰器(兼容 ECMAScript) — 现在 TypeScript 支持符合 TC39 提案的标准装饰器。旧的实验性装饰器为了向后兼容而保留,但建议新项目迁移到新语法。
  • const 类型参数 — 现在可以使用 const 修饰符声明泛型。这允许更精确地推断字面量类型,尤其是在处理数组和元组时。例如,const tuple = <const T,>(...args: T) => args 将保留元组的精确长度。
  • 性能提升 — TypeScript 5.0 通过优化内部数据结构并减少垃圾回收器的负载,运行速度更快。在某些项目中,构建速度提升了 10-25%。
  • 在单个项目中支持多个配置 — 现在可以在 references 部分指定多个 tsconfig.json 文件,而无需重复设置。这简化了单体仓库和微服务架构。
  • 改进了对枚举的处理 — 所有枚举值现在都是字面量类型的联合。这改进了代码编辑器中的类型检查和自动补全功能。
  • JSDoc 导入 — 在使用 @type 和 @param 的 JavaScript 文件中,现在可以通过 import('./types').SomeType 从其他文件导入类型。这使得 JSDoc 类型标注功能更加强大。


语法和兼容性方面的变化



TypeScript 5.0 版本对于用 TypeScript 4.9 编写的代码没有破坏性更改。但是,需要注意以下几点:

  • 移除了对旧装饰器系统的支持(如果您不使用实验性标志 experimentalDecorators)。
  • 扩展名为 .ts 的文件现在可以包含异步函数的默认导出,而无需额外的包装器。
  • 改进了与 Node.js ESM 的集成——TypeScript 5.0 正确处理 .mts 和 .cts 扩展名。


如何升级到 TypeScript 5.0



升级不需要太多努力。只需在终端中执行:

npm install typescript@latest --save-dev


安装后,建议使用命令 tsc --noEmit 检查项目是否存在错误。如果您使用旧的装饰器,请在 tsconfig.json 中添加标志 "experimentalDecorators": true 以保持兼容性。



结论



TypeScript 5.0 是生态系统向前迈出的重要一步。新的装饰器、const 类型参数和性能提升使其成为最重要的版本之一。

推荐库