TypeScript 4.8修正了Linux和macOS上的文件调查问题

微软的类型化JavaScript的更新还引入了对交叉和联合类型的工作方式以及TypeScript缩小类型的改善

TypeScript 4.8是微软流行的强类型JavaScript变体的计划升级,它将为该语言添加正确性和一致性的改善以及文件调查的修正。

6月21日作为测试版发布,TypeScript 4.8将于8月23日全面上市。随着测试版的发布,在strictNullChecks 下引入了一系列对一致性和正确性的改善。这些改变影响了交叉和联合类型的功能,并在TypeScript缩小类型的过程中得到了利用。在一个例子中,unknown 在精神上接近于联盟类型{} | null | undefined ,由于它承受nullundefined ,和任何其他类型。TypeScript现在认识到这一点,并允许从unknown{} | null | undefined 的赋值。微软说,TypeScript 4.8中的改变允许控制流和类型缩小方面的合理改善。通用值也得到了缩小。

至于文件调查的修正,TypeScript有一个长期存在的错误,在--watch 形式和编辑器的情况下,该语言对某些文件的改变有困难。一般,这些都发生在Unix体系上。这种情况是由关于Node.js如何处理跨文件体系重命名事件的假定引起的。Linux和MacOS运用的文件体系运用inodes,而Node.js会将文件调查器附加到inodes而不是文件路径。TypeScript试图运用相同的调查者目标,假如它检测到一个路径依然存在于磁盘上,所以最终会重复运用调查者目标,而不是在原始方位安装一个新的调查者,并且会调查可能是不相关文件的改变。TypeScript 4.8正确处理了节点体系上的这些情况,并安装了一个新的调查器。

在TypeScript 4.8的其他地方:

  • 引入了优化,以加快环绕–-watch--incremental 的计划,以及运用--build 的项目引证。
  • 绑定形式的推理现已得到了改善。
  • 当在编辑器中运转find-all-references时,TypeScript现在在聚合引证方面更加智能。这使得搜索一个广泛运用的标识符所需的时间减少了约20%。
  • 在一个突破性的改变中,不受约束的泛型不再能够分配给{} 。在另一个突破性改变中,类型不能在JavaScript文件中被导入或导出。

TypeScript 4.8测试版能够经过NuGet下载,或者经过NPM运用以下命令下载:

npm install -D typescript@beta

TypeScript 4.8是继上个月发布的TypeScript 4.7之后的又一个版本。