Angular2使用带有正斜杠的对象键上的Elvis运算符

时间:2016-03-03 09:56:45

标签: javascript typescript angular

我遇到了解析问题,这是用Elvis运算符解决的,但是如果我有包含正斜杠的键,我就不能使用Elvis运算符,因为我必须把那个键放到方括号中。

如果键很简单就行了("名字")

{{ data?.record?.firstname }}

如果键具有这样的前括号(" name / first")

,则不起作用
{{ data?.record?['name/first']}}

如果我使用方括号,似乎Elvis不可用。

任何解决方法?也许是一种逃避冲突的方法。这样的符号:

{{ data?.record?.name\\/first }}

2 个答案:

答案 0 :(得分:13)

Elvis运算符仅适用于.,不适用于其他解除引用运算符,例如[]

作为解决方法使用

{{ data?.record ? data.record['name/first'] : null}}

答案 1 :(得分:0)

实际上,您可以同时使用?和[]同时:

罪人

obj?.prop
obj?。[expr]
arr?。[index]
func?。(args)

您的情况应该是:

{{data?.record?。['name / first']}}

如果是数组,仍然可以使用,就像这样:

attributes ['bar / foo']?。[0]

非常有用...:-)

来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining