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

8
我们在.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

很快就会发布了..https://github.com/tc39/proposal-nullish-coalescing - Jonas Wilms
2个回答

6
这是TypeScript中的一个建议功能,位于传说中的Issue #16下。
在ECMAScript规范确定之前,它不会被引入到TypeScript中,因为TypeScript实现遵循该规范的愿望 - 所以在这种情况下,您将获得早期的版本,但不是大规模的早期版本。
它被称为以下任何一种:
- 空值传播运算符 - 存在性运算符 - 空合并运算符

这个有更新吗?看起来问题还是被锁住了。另外,暂时有什么有效的解决方法吗? - Trevor
“null coalesce” 运算符是 相关但不同?? 运算符。这两个提案最近都进入了第二阶段,希望很快能够实现! - Dave

5

2020年更新:下面提到的空值合并运算符现在已经通过了流程并且在ES2020中,还有可选链操作符,可以让你这样做:

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

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

JavaScript 没有空值合并运算符(TypeScript 也没有,它主要限制于添加类型层和采用已经基本成为 JavaScript 特性的功能)。有一个关于 JavaScript 的 null 合并运算符的提案,但它仅处于流程的第一阶段

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

let postal_code = address && address.postal_code;

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

假值包括 0, "", NaN, null, undefined 以及当然的 false


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接