React JS/Typescript 中的空合并运算符

Null coalescing operator in React JS/ Typescript

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

string postal_code = address?.postal_code;

我们可以在 React JS 中做同样的事情吗?

我发现我们可以用 && 运算符做什么

address.ts文件中

string postal_code = address && address.postal_code;

我需要的 .net 功能可以在带有 React JS 的打字稿中实现,这可能吗?

类似于:

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

这是 TypeScript 中提议的功能,在传说中 Issue #16

在该功能的 ECMAScript 规范确定之前,它不会被引入 TypeScript,因为人们希望 TypeScript 实现遵循该规范 - 所以你会早点得到它,但不会在这个阶段大量早案例.

它被称为以下任何一个:

  • 空传播算子
  • 存在运算符
  • 空合并运算符

2020 年更新:下面提到的 nullish-coalescing 运算符现在已经完成,并且在 ES2020 中,optional chaining operator 允许您执行以下操作:

let postal_code = address?.postal_code;
// −−−−−−−−−−−−−−−−−−−−−−^

使用可选链接,如果 addressnullundefinedpostal_code 将获得 undefined 作为其值。但是如果address既不是null也不是undefinedpostal_code将得到address.postal_code的值。


JavaScript 没有空合并运算符(TypeScript 也没有,主要 将自己限制在添加类型层和采用相当远的功能沿着通往 JavaScript 的道路前进)。还有is a proposal for a JavaScript null-coalescing operator, but it's only at Stage 1 of the process.

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

let postal_code = address && address.postal_code;

如果 addressnull(或任何其他虚假值),postal_code 将是相同的值;否则,它将是 address.postal_code 的任何值。


¹ 虚假值是 0""NaNnullundefined,当然还有 false。 =36=]