TypeScript 5.8 发布,改进了类型推断并增强了与 JavaScript 生态系统的互操作性

TypeScript 5.8 发布总结

主要发布者

  • Daniel Rosenwasser:微软首席产品经理,负责 TypeScript 的产品管理。

主要更新

  1. 更智能的类型推断

    • 改进了条件返回类型的推断。
    • 示例代码展示了在 return 语句中的条件表达式会检查每个分支是否符合函数声明的返回类型。
    • 之前的版本未检测到的类型错误在新版本中会被捕获。
  2. 性能提升

    • 新版本在性能上有所优化。
  3. 与 JavaScript 生态系统的互操作性增强

    • 支持在 Node.js 中直接运行 TypeScript,无需编译步骤。
    • 通过 --erasableSyntaxOnly 标志,TypeScript 可以在 Node.js 中直接运行,前提是语法是可擦除的(即不改变运行时语义的 TypeScript 特定语法)。
  4. require() 的完全支持

    • 使用 --module nodenext 标志时,TypeScript 现在完全支持 require() 用于 JavaScript 模块。

开发者反馈

  • 大多数开发者对改进的类型推断表示欢迎。
  • 有开发者指出,之前未明确记录的强制类型转换问题令人沮丧。

未来展望

  • TypeScript 团队的目标:未来可能不再使用某些语法,特别是当 JavaScript 的类型语法提案达到第 4 阶段时。
  • JavaScript 类型语法提案:目前处于第 1 阶段,旨在减少构建步骤的需求,使开发设置更简单。

技术细节

  • 示例代码:展示了新版本如何捕获类型错误。
  • 可擦除语法示例:如 const foo: string = 'foo'; 在擦除后变为 const foo = 'foo';

完整发布说明

  • 开发者可以在微软的开发者博客上查看完整的发布说明,包括更多的技术细节、示例和功能列表。

相关链接

阅读 11 (UV 11)
0 条评论