TypeScript 5.7 发布:新特性、性能与类型系统改进

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

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

开始课程

TypeScript 5.7 发布:有哪些变化以及为何重要



微软团队正式发布了 TypeScript 5.7——这个流行的类型化编程语言的又一次重大更新。新版本包含数十项修复、优化以及期待已久的功能,这些功能简化了开发流程,使代码更加安全。我们来分析一下主要变化。



改进了对 never 类型分支的检查

关键新特性之一是对不可达分支的更智能分析。以前,TypeScript 并不总能正确判断在调用返回类型为 never 的函数后,后续代码不会被执行。现在,编译器能更精确地追踪此类情况,从而减少误报,并允许编写更清晰的代码结构:

  • 消除了关于“不可达代码”的错误警告。
  • 改进了对异常和无限循环的处理。
  • 使用 assertNever 时的行为更加正确。


新的编译目标:--target ESNext

新增了对 --target ESNext 标志的支持。现在,您可以将代码编译到最新版本的 ECMAScript,而无需指定具体版本号(例如 ES2023)。这对于那些需要与最新 JavaScript 引擎功能保持兼容的项目尤其方便。预计 ESNext 将随着每个 TypeScript 新版本的发布而自动更新。



工具类型:改进与新功能

TypeScript 5.7 扩展了用于处理类型的内置工具:

  • NoInfer — 一个新的类型别名,它阻止 TypeScript 从传入的参数自动推断类型。有助于避免重载时出现意外的类型收窄。
  • 改进了 Omit 和 Pick 与条件类型和映射类型的配合。
  • 在展开运算符的上下文中,对 readonly 数组进行了更严格的检查。


编译器性能优化

开发人员在增量编译速度方面做了大量工作。据团队称,在大型单体仓库(例如包含数千个文件)中,构建时间减少了 10–15%。这得益于:

  • 对未更改模块的类型检查结果进行缓存。
  • 改进了模块解析算法。
  • 优化了与条件类型相关的处理。


简化 JSDoc 处理与编辑器更新

TypeScript 5.7 能更好地理解 JSDoc 中的注解——现在支持更复杂的模式和联合类型。在编辑器(VS Code、WebStorm)中,针对配置文件 tsconfig.json 的自动补全功能得到改进:提示更精确,每个字段的描述也更详细。



其他修复与总结

此版本还包含数十个与装饰器、模块和类型交集相关的错误修复。可通过 npm 进行更新:

npm install -D typescript@5.7

TypeScript 5.7 是一个平衡的版本,它在不破坏向后兼容性的前提下,让开发体验更加舒适。如果您在项目中使用严格的类型系统,建议您尽快升级。

敬请关注 PythonLib 的更多新闻——我们持续

推荐库