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

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

TypeScript简介

IT之家注:TypeScript是一种在JavaScript基础上通过添加类型语法构建的语言。

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

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

使用命令

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

npminstall-Dtypescript

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

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

TypeScript5.6继续完善检查“可疑代码”,微软发布:完善空值合并和真值检查现在能够在发现表达式计算结果始终为TRUE时抛出错误,如正则表达式,函数表达式等:

if(/0x[0-9a-f]/){

//~~~~~~~~~~~~

//error:Thiskindofexpressionisalwaystruthy.

}

if(x=>0){

//~~~~~~

functionisValid(value:string|number,options:any,strictness:"strict"|"loose"){

if(strictness==="loose"){

value= value

returnvalue

//~~~~~~~~~~~~~~~~~~~

//error:Rightoperandof??isunreachablebecausetheleftoperandisnevernullish.

if(

isValid(primaryValue,"strict")||isValid(secondaryValue,"strict")||

isValid(primaryValue,"loose"||isValid(secondaryValue,"loose"))

){

//~~~~~~~

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

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

IteratorHelper方式

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

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

function*positiveIntegers(){

leti=1;

while(true){

yieldi;

i ;

constevenNumbers=positiveIntegers()map(x=x*2)

//Output

//2

//4

//6

//8

//10

for(constvalueofevenNumbers.take(5)){

console.log(value)

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

免责声明:本网站部分内容由用户自行上传,若侵犯了您的权益,请联系我们处理,谢谢!联系QQ:2760375052

分享:

扫一扫在手机阅读、分享本文