如何在 coffeescript 中链接存在运算符

how to chain the existential operator in coffeescript

假设我在 coffeescript 中有一个对象引用,如下所示:

object.param.foo.bar

我想验证该栏是否存在?我该怎么做?

我相信 object.param.foo?.bar 测试 foo 是否存在,如果不存在则返回 undefined,但是 object.param.foo.bar? 将整个表达式转换为布尔值测试。

我想要的是 returns 如果存在 object.param.foo.bar 如果不存在 undefined

我认为您正在寻找表达式

object.param?.foo?.bar

假定 object 存在,并且如果 .param.foo.bar 属性不存在,则将 return undefined '存在。如果您知道 ? 确实存在,则可以省略它们。

我不确定我是否理解你的问题(object.param.foo?.bar 怎么没有按照你的要求去做?你还没告诉我们。)。

但是如果你想全程执行null检查(如果objectobject.paramobject.param.bar为null),你可以使用:

bar = object?.param?.foo?.bar

如果此链中的任何内容为 null 或未定义,这将生成 undefined,如果存在 object.param.foo.bar 的值。