宣布 TypeScript 5.5 RC - TypeScript

今天,我们兴奋地宣布 TypeScript 5.5 候选版本的发布。

使用 RC 的开始

  • 通过 NuGet 获取:通过 NuGet
  • 通过 npm 获取:npm install -D typescript@rc

新特性列表

自 Beta 以来的新变化

  • 支持 ECMAScript 的新 Set 方法
  • 调整 TypeScript 新正则表达式检查的行为
  • 增加并记录更多性能优化

推断类型谓词

  • 控制流分析跟踪变量类型变化
  • 过去难以应用于数组,TypeScript 5.5 可处理
  • 推断类型谓词的条件
  • 类型谓词有“当且仅当”语义
  • 可能会破坏现有代码,需使用显式类型注释
  • 更多示例和注意事项

常量索引访问的控制流缩小

  • objkey 均为常量时,可缩小 obj[key] 的类型

JSDoc 中的类型导入

  • JavaScript 中导入仅用于类型检查的东西很繁琐
  • 以前的解决方案如命名空间导入、import(...) 类型在 JSDoc 中
  • TypeScript 5.5 支持新的 @import 注释标签

正则表达式语法检查

  • 以前 TypeScript 通常跳过大多数正则表达式
  • 现在对正则表达式进行基本语法检查
  • 能捕获常见错误,如回溯引用和命名捕获组问题
  • 对某些 RegExp 功能在不同 ECMAScript 目标下的检查

对新 ECMAScript Set 方法的支持

  • 声明新的 Set 类型方法
  • unionintersection 等方法的使用示例

隔离声明

  • 声明文件描述现有库的形状
  • 介绍 --isolatedDeclarations 选项
  • 解决生成声明文件的工具性能和并行性问题
  • 错误情况和适用场景
  • 与其他工具的协作和改进

配置文件的 ${configDir} 模板变量

  • 解决共享 tsconfig.json 文件的路径问题
  • 引入新模板变量 ${configDir} 用于相对路径

为声明文件生成咨询 package.json 依赖项

  • 对某些错误更宽容,减少此类错误

编辑器和监视模式可靠性改进

  • 使 --watch 模式和编辑器集成更可靠
  • 正确刷新 tsconfig.json 中的编辑器错误
  • 更好处理删除后立即写入
  • 跟踪符号链接在失败解析中的情况
  • 项目引用有助于自动导入

性能和大小优化

  • 语言服务和公共 API 中的单态化对象
  • 控制流节点的单态化
  • 控制流图的优化
  • transpileModuletranspileDeclaration 中的跳过检查
  • TypeScript 包大小的减少
  • 声明文件生成中的节点重用
  • 缓存歧视联合的上下文类型

从 ECMAScript 模块更轻松地使用 API

  • 以前在 Node.js 中使用命名导入有问题,现已修复

transpileDeclaration API

  • 类似于 transpileModule,用于生成声明文件
  • isolatedDeclarations 模式下可用于并行化声明生成

显著的行为变化

  • 禁用 TypeScript 5.0 中已弃用的功能
  • lib.d.ts 的变化影响 DOM 类型检查
  • 在其他模块模式中尊重文件扩展名和 package.json
  • 对装饰器的更严格解析
  • undefined 不再是可定义的类型名称
  • 简化的引用指令声明 emit

未来计划

  • 预计除了编译器的关键错误修复和语言服务的 minor 错误修复外,TypeScript 5.5 变化很小
  • 即将发布 TypeScript 5.5 的稳定版本
  • 专注于开发 TypeScript 5.6,未来几天将提供迭代计划和预定发布日期
  • 可在 npm 上使用 TypeScript 的夜间构建,并在 Visual Studio Code 中使用扩展

作者:Daniel Rosenwasser,TypeScript 团队的首席产品经理,对编程语言、编译器和优秀的开发工具充满热情。

阅读 21
0 条评论