我有一个从 3rd 方 API 获取的对象,如下所示:
{
name:"Luke Skywalker",
__typename:"People",
Symbol(id):"ROOT_QUERY.people."
}
虽然可以通过简单的 object.name 访问“Luke Skywalker”,但我如何才能访问该对象的 Symbol(id) 属性的值?
原文由 Bakhtiiar Muzakparov 发布,翻译遵循 CC BY-SA 4.0 许可协议
该对象初始值设定项无效,因此很难回答。
如果那确实是一个以 Symbol 命名的属性,则答案取决于该 Symbol 是否已全局注册。
如果不是,您只能通过
getOwnPropertySymbols
发现符号。如果它是唯一的,很好,你的状态很好:这假设只有一个以符号命名的属性,我们可能不应该这样做。相反,让我们寻找具有描述性字符串
"Symbol(id)"
的符号:但是,如果它是全局注册的并且您知道它在哪个字符串下注册,则可以使用
Symbol.for
来获取它: