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;
// −−−−−−−−−−−−−−−−−−−−−−^
使用可选链接,如果 address
是 null
或 undefined
,postal_code
将获得 undefined
作为其值。但是如果address
既不是null
也不是undefined
,postal_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;
如果 address
是 null
(或任何其他虚假值),postal_code
将是相同的值;否则,它将是 address.postal_code
的任何值。
¹ 虚假值是 0
、""
、NaN
、null
、undefined
,当然还有 false
。 =36=]
我们在 .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;
// −−−−−−−−−−−−−−−−−−−−−−^
使用可选链接,如果 address
是 null
或 undefined
,postal_code
将获得 undefined
作为其值。但是如果address
既不是null
也不是undefined
,postal_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;
如果 address
是 null
(或任何其他虚假值),postal_code
将是相同的值;否则,它将是 address.postal_code
的任何值。
¹ 虚假值是 0
、""
、NaN
、null
、undefined
,当然还有 false
。 =36=]