TypeScript 3.5是Microsoft流行JavaScript类型化超集的最新版本,现已在生产版本中提供。 该更新增加了类型检查的优化,解决了TypeScript 3.4引入的严重速度下降问题。
借助TypeScript 3.5,Microsoft的TypeScript开发团队专注于优化代码路径并剥离某些功能以加快TypeScript的速度。 与TypeScript 3.4相比,编译时间有所减少; TypeScript开发人员指出 ,代码完成和其他编辑器操作也应该“更加精巧”。
在进行这些优化时,TypeScript团队试图修补TypeScript 3.4中引入的回归,这可能导致类型检查器进行更多工作并增加类型检查时间。 回归是严重的,因为除了导致更长的构建时间之外,TypeScript和JavaScript用户的编辑器操作变得“难以忍受的缓慢”。 受影响最大的是使用样式组件库的开发人员。
TypeScript 3.5的其他改进包括:
- 缓存优化会影响
incremental
编译器选项,从而减少了重建时间。 - 一个
lib.d.ts
声明文件,用于提供Omit
助手类型。 编译器将使用此类型来表示通过对泛型进行对象剩余结构分解而创建的类型。 - 改进了联合类型中的多余属性检查。 多余的属性检查旨在在类型不期望特定属性时查找拼写错误。 在TypeScript 3.5中,类型检查器验证所有提供的属性都属于某个联合成员并具有适当的类型。
- 当分配具有可区分属性的类型时,该语言会将类型分解为每种可能的居民
typescript
类型的并集。 这提供了更智能的类型检查。 - 使用
allowUmdGlobalAccess
标志引用UMD(通用模块定义)全局声明。 - 来自泛型构造函数的高阶类型推断。
- Smart Select功能提供了一种API,供编辑者以句法感知的方式向外扩展文本选择,而编辑者知道要扩展到的构造。 编辑人员不必使用大括号匹配之类的启发式方法。 开发人员现在可以期望像Visual Studio Code这样的编辑器中的选择扩展可以正常工作。
- 一种新的重构将类型提取到本地别名。
- TypeScript 3.5包含一些重大更改,例如约束为
unknown
通用类型参数。
您可以从NuGet或使用以下NPM命令下载TypeScript 3.5发行候选版:
npm install -g typescript
From: https://www.infoworld.com/article/3397076/typescript-35-fixes-unbearably-slow-type-checking-bug.html