Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React JS/Typescript中的Null合并运算符_Javascript_.net_Reactjs_Typescript_Null Check - Fatal编程技术网

Javascript React JS/Typescript中的Null合并运算符

Javascript React JS/Typescript中的Null合并运算符,javascript,.net,reactjs,typescript,null-check,Javascript,.net,Reactjs,Typescript,Null Check,我们在.NET中有空合并运算符,我们可以使用如下 string postal_code = address?.postal_code; 我们在React JS中可以做同样的事情吗 我发现我们可以使用&&运算符 在address.ts文件中 string postal_code = address && address.postal_code; 我所需要的像.net这样的功能在带有react JS的typescript中是可能的,这可能吗 比如: string postal_c

我们在
.NET
中有空合并运算符,我们可以使用如下

string postal_code = address?.postal_code;
我们在React JS中可以做同样的事情吗

我发现我们可以使用&&运算符

address.ts文件中

string postal_code = address && address.postal_code;
我所需要的像.net这样的功能在带有react JS的typescript中是可能的,这可能吗

比如:

string postal_code = address?.postal_code // I am getting the error in this line if I try to use like .NET

这是TypeScript中的一个建议功能,在legendary

在该特性的ECMAScript规范确定之前,它不会被引入到TypeScript中,因为人们希望TypeScript实现遵循该规范——因此您会很早就得到它,但在本例中不会太早

它被称为以下任何一种:

  • 零传播算子
  • 存在算子
  • 零合并算子

2020年更新:下面提到的空聚结操作符现在已经完成了该过程,并在ES2020中完成,这是允许您执行的操作:

let postal_code = address?.postal_code;
// −−−−−−−−−−−−−−−−−−−−−−^
使用可选链接,如果
地址
未定义
邮政编码
将获得
未定义
作为其值。但是如果
address
既不是
null
也不是
未定义
邮政编码
将获得
地址的值。邮政编码


JavaScript没有空合并操作符(TypeScript也没有,TypeScript主要局限于添加一个类型层,并采用在将其转换为JavaScript的过程中相当远的特性)。在那里,但只在第一阶段

使用您描述的
&
习惯用法是一种相当常见的方法:

let postal_code = address && address.postal_code;
如果
地址
(或任何其他伪值),
邮政编码
将是相同的值;否则,它将是任何值
address.postal_code



⑨falsy值是
0
NaN
null
未定义,当然
false
,很快就会出现。有什么更新吗?看起来问题仍然被锁定。此外,目前是否有任何有效的解决办法?空合并运算符是
??
运算符。此外,这两项建议最近都进入了第二阶段,所以希望它能很快得到实施!