今天,我们兴奋地宣布 TypeScript 5.5 候选版本的发布。
使用 RC 的开始
- 通过 NuGet 获取:通过 NuGet
- 通过 npm 获取:
npm install -D typescript@rc
新特性列表
- 推断类型谓词
- 常量索引访问的控制流缩小
- JSDoc 中的类型导入
- 正则表达式语法检查
- 对新 ECMAScript
Set
方法的支持 - 隔离声明
- 配置文件的
${configDir}
模板变量 - 为声明文件生成咨询
package.json
依赖项 - 编辑器和监视模式可靠性改进
- 性能和大小优化
- 从 ECMAScript 模块更轻松地使用 API
transpileDeclaration
API
自 Beta 以来的新变化
- 支持 ECMAScript 的新
Set
方法 - 调整 TypeScript 新正则表达式检查的行为
- 增加并记录更多性能优化
推断类型谓词
- 控制流分析跟踪变量类型变化
- 过去难以应用于数组,TypeScript 5.5 可处理
- 推断类型谓词的条件
- 类型谓词有“当且仅当”语义
- 可能会破坏现有代码,需使用显式类型注释
- 更多示例和注意事项
常量索引访问的控制流缩小
- 当
obj
和key
均为常量时,可缩小obj[key]
的类型
JSDoc 中的类型导入
- JavaScript 中导入仅用于类型检查的东西很繁琐
- 以前的解决方案如命名空间导入、
import(...)
类型在 JSDoc 中 - TypeScript 5.5 支持新的
@import
注释标签
正则表达式语法检查
- 以前 TypeScript 通常跳过大多数正则表达式
- 现在对正则表达式进行基本语法检查
- 能捕获常见错误,如回溯引用和命名捕获组问题
- 对某些 RegExp 功能在不同 ECMAScript 目标下的检查
对新 ECMAScript Set
方法的支持
- 声明新的
Set
类型方法 - 如
union
、intersection
等方法的使用示例
隔离声明
- 声明文件描述现有库的形状
- 介绍
--isolatedDeclarations
选项 - 解决生成声明文件的工具性能和并行性问题
- 错误情况和适用场景
- 与其他工具的协作和改进
配置文件的 ${configDir}
模板变量
- 解决共享
tsconfig.json
文件的路径问题 - 引入新模板变量
${configDir}
用于相对路径
为声明文件生成咨询 package.json
依赖项
- 对某些错误更宽容,减少此类错误
编辑器和监视模式可靠性改进
- 使
--watch
模式和编辑器集成更可靠 - 正确刷新
tsconfig.json
中的编辑器错误 - 更好处理删除后立即写入
- 跟踪符号链接在失败解析中的情况
- 项目引用有助于自动导入
性能和大小优化
- 语言服务和公共 API 中的单态化对象
- 控制流节点的单态化
- 控制流图的优化
transpileModule
和transpileDeclaration
中的跳过检查- 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 团队的首席产品经理,对编程语言、编译器和优秀的开发工具充满热情。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。