当前位置: 首页 » 资讯 » 新科技 » 正文

微软发布 TypeScript 5.6:完善空值合并和真值检查

IP属地 北京 编辑:周琳 IT之家 时间:2024-09-10 10:24:50

9 月 10 日消息,微软公司昨日(9 月 9 日)发布博文,宣布推出 Type 5.6 正式版,主要进一步完善空值合并与真值检查,支持禁用类型检查等等。

Type 简介

注:Type 是一种在 Java 基础上通过添加类型语法构建的语言。

类型(Types)用于描述开发者对变量、参数和函数的形态,而 Type 类型检查器可以在开发者运行代码之前,帮助筛查诸如拼写错误、遗漏属性以及错误的函数调用等问题。

Type 编辑器还引入了自动补全、代码导航和重构等功能,用户可以在 Visual Studio 和 VS Code 等编辑器中体验。

使用命令

用户可以通过以下命令使用 npm 开始使用 Type:

npminstall-Dtype

或者可以通过 NuGet 方式获取。

新版变化

禁止使用空值合并(Nullish)与真值检查(Truthy Checks)

Type 5.6 继续完善检查“可疑代码”,现在能够在发现表达式计算结果始终为 TRUE 时抛出错误,如正则表达式,函数表达式等:

if(/0x[0-9a-f]/){ //~~~~~~~~~~~~ //error:Thiskindofexpressionisalwaystruthy. } if(x=>0){ //~~~~~~ //error:Thiskindofexpressionisalwaystruthy. } functionisValid(value:string|number,options:any,strictness:"strict"|"loose"){ if(strictness==="loose"){ value=+value } returnvalue<options.max??100; //~~~~~~~~~~~~~~~~~~~ //error:Rightoperandof??isunreachablebecausetheleftoperandisnevernullish. } if( isValid(primaryValue,"strict")||isValid(secondaryValue,"strict")|| isValid(primaryValue,"loose"||isValid(secondaryValue,"loose")) ){ //~~~~~~~ //error:Thiskindofexpressionisalwaystruthy. }

通过启用 ESLint 的 no-constant-binary-expression规则,同样可以实现类似效果,你可以在他们的博客文章中看到部分成果。

然而,Type 新增的检查与 ESLint 规则并非完全重叠,并且微软认为将这些检查内置于 Type 本身具有很大价值。

Iterator Helper 方式

Java 中存在可迭代对象(可以通过调用 [Symbol.iterator] 来遍历的对象)和迭代器(具有 next 方法的对象,我们可以调用该方法以在遍历过程中尝试获取下一个值)的概念。

Iterable 和 IterableIterator 在 Java 中随处可见,但许多人反馈自己怀念 Array 上的方法,比如 map 、 filter ,出于某种原因还有 reduce 。

function*positiveIntegers{ leti=1; while(true){ yieldi; i++; } } constevenNumbers=positiveIntegersmap(x=x*2) //Output //2 //4 //6 //8 //10 for(constvalueofevenNumbers.take(5)){ console.log(value) }

这就是为什么最近在 ECMA 中提出了一项提案,要将 Array 中的许多方法(及更多)添加到 Java 中生成的大多数 IterableIterator 上。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。

全站最新