首页 > 解决方案 > 如何在 Typescript 中管理未定义的返回类型?

问题描述

抱歉,我是 Typescript 的新手,需要在过滤后将 prop 传递给组件,为此我定义了一个简单的过滤方法。我得到编译错误说'Type'I Milestone [] | undefined' 不能分配给类型 'I Milestone []'

 const milestonesOfActiveGroup = ():IMilestone[] => {
    return studyProgress?.groups.filter((group:IGroup) => group.name === activeGroup)[0].milestones
  }

因为我获取并填充了 studyProgress,所以它可以是未定义的。定义此方法的正确方法是什么?

标签: typescript

解决方案


const milestonesOfActiveGroup = (): IMilestone[] | undefined => {
    return studyProgress?.groups.filter((group:IGroup) => group.name === activeGroup)[0].milestones;
  }

您声明了“如果 studyProgress 未定义或为 null,则返回未定义”( studyProgress?),因此您应该使用undefined( IMilestone[] | null) 声明返回类型。|是 Union,其含义是“它将返回 I Milestone[] OR undefined”。


推荐阅读