繁体   English   中英

如何获取具有默认值的嵌套和可选对象值并定义类型?

[英]How to get a nested and optional object value with a default value and define type?

应该是一个简单的......我只想得到data.user.roles ,但data可能是空的。 在这种情况下,我需要一个空数组作为结果。 我还需要定义user的类型——在这种情况下是any 所以这就是我想出的:

const { data } = useSession()
const user: any = data?.user || {} // define user
const roles = user?.roles || []

它有效,但感觉不是很聪明。

而且我不太确定,如果useSession不返回完整数据集,这是否可行:

type Session = {
  data: {
    user?: {
        roles?: string[]
    }
  }
}
const {
  data: {
    user: { roles = [] }
  }
}: Session = useSession()

根据Session类型保证data存在,所以你不需要? 在那之后。 从那里您只需深入研究并在最后提供后备。

const { data } = useSession()
const roles = data.user?.roles ?? []

看游乐场

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM