gpt4 book ai didi

javascript - 对象可能是 'undefined' 可选链接 typescript 上的错误

转载 作者:行者123 更新时间:2023-12-04 12:11:22 25 4
gpt4 key购买 nike

我有一个正在访问的响应:data?.currentOrganization?.onboardingSteps? .您可以猜到,data、currentOrganization 和 onboardingSteps 可能都为空。我想分配一个变量如下:const hasSteps = data?.currentOrganization?.onboardingSteps?.length > 0;我认为如果任何字段为空或少于 1 步,hasValue 将评估为 false。但是,我收到 TypeScript 错误:Object is possibly 'undefined' .
这就是我目前解决它的方式:

const hasSteps =
data?.currentOrganization?.onboardingSteps != null &&
data?.currentOrganization?.onboardingSteps?.length > 0;
这感觉不必要地冗长。有没有其他更优雅的解决方案?

最佳答案

optional chain最终将产生 data?.currentOrganization?.onboardingSteps?.length 的值大概是 number如果链中的所有内容都不是 nullundefined .... 但如果链中的任何内容为空,则输出将为 undefined本身。你不能测试undefined > 0没有 typescript 提示它。
因此,您可能应该执行以下操作:

const hasSteps = (data?.currentOrganization?.onboardingSteps?.length ?? 0) > 0;
这是使用 nullish coalescing生产 0如果可选链以 undefined 结尾.
Playground link to code

关于javascript - 对象可能是 'undefined' 可选链接 typescript 上的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66017941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com