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.7TypeScript 5.7 是一个平衡的版本,它在不破坏向后兼容性的前提下,让开发体验更加舒适。如果您在项目中使用严格的类型系统,建议您尽快升级。
敬请关注 PythonLib 的更多新闻——我们持续