slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
TypeScript 发布 4.8 候选版本,含重大更新
17611538698
webmaster@21cto.com

TypeScript 发布 4.8 候选版本,含重大更新

资讯 0 1855 2022-08-19 02:46:33

图片


TypeScript 的下一个版本 4.8 当前处于候选发布阶段(RC版本)。


“从现在到 TypeScript 4.8 的稳定版本,我们预计除了关键的错误修复之外不会有进一步的变化,” TypeScript 高级项目经理 Daniel Rosenwasser 在博客中说道。


这个阶段将很短,根据迭代计划:“最终测试构建”将在本周晚些时候发布,最终版本将在 8 月 23 日左右正式发布。


从 4.8 Beta 版本以来没有添加太多内容,主要特性有一个新的 TS 服务器首选项,可以从用于代码完成的自动导入列表中排除模块或库。


其它变化之一是 TypeScript 团队称之为“充其量是 JavaScript 开发人员早期的手枪,最坏的情况是生产代码中的错误”。


这是将对象与数组文字进行比较的地方。代码如下:


var things: any[] = Array();
if (things == []) {
//数组为空吗?
}

类似的代码在 Python 中也可以工作,但 JavaScript 仅在对象指向同一个实例时才认为它们是相等的。


TypeScript 4.8 现在将报告此代码错误:“此条件将始终返回 'false',因为 JavaScript 通过引用而不是通过值来比较对象。”


图片

如果将对象与文本进行比较,TypeScript 现在会报告错误


根据 TypeScript 团队的说法,“由于类型系统更改的性质”,TypeScript 更新中的重大更改几乎是无法避免的。


TypeScript 的目的是在部署之前更容易捕获错误,因此 4.8 中的“正确性修复”,包括上述更改,即使它们似乎引发了新错误,对于开发者和项目来说也是一件好事。


谷歌内部软件团队在测试版报告中表示,“需要对我们的 TypeScript 代码进行一些更改才能使其与 TypeScript 4.8 一起编译”,尽管只有一小部分库受到影响。“我们仍支持TS改进”。


谷歌团队表示实测了关于对象与数组、文本的比较:“我们看到了类似于发布公告中提到的类型错误”,并且“我们希望向任何类型添加强制转换以消除错误,并随着时间的推移应用适当的修复”。

尽管在代码中添加“as any” 会起作用,但这样做会留下潜在的Bug,因此不建议这样做——尽管有谷歌的情况下,这个问题也只影响到使用的 0.006% 的库。


评论