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

IT技术 javascript .net reactjs typescript null-check
2021-04-30 21:05:50

我们有空合并运算符.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
2个回答

这是 TypeScript 中的一个提议特性,在传说中的Issue #16

在此功能的 ECMAScript 规范确定之前,它不会被引入到 TypeScript 中,因为希望 TypeScript 实现遵循该规范——所以你会尽早得到它,但在这种情况下不会太早。

它被称为以下任何一项:

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

2020 年更新:下面提到的空合并运算符现在已经完成,并且在 ES2020 中,可选的链接运算符也是如此:

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

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


JavaScript 没有空合并运算符(TypeScript 也没有,它主要将自己限制在添加类型层并采用在将其融入 JavaScript 的道路上相当远的特性)。一个 JavaScriptnull合并运算符的提议,但它仅处于流程的第 1 阶段

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

let postal_code = address && address.postal_code;

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


¹ 假值是0, "", NaN, null, undefined, 和 当然false