typescript - 如何在 Typescript 中管理未定义的返回类型?
问题描述
抱歉,我是 Typescript 的新手,需要在过滤后将 prop 传递给组件,为此我定义了一个简单的过滤方法。我得到编译错误说'Type'I Milestone [] | undefined' 不能分配给类型 'I Milestone []'
const milestonesOfActiveGroup = ():IMilestone[] => {
return studyProgress?.groups.filter((group:IGroup) => group.name === activeGroup)[0].milestones
}
因为我获取并填充了 studyProgress,所以它可以是未定义的。定义此方法的正确方法是什么?
解决方案
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”。
推荐阅读
- python - 如何从 miniconda 访问 Jupyter?
- python-3.x - 这个 Django 注册功能中的 UID 的用途是什么
- indexing - 从两个相同大小的张量中随机选择项目
- node.js - Mongo changeStream 用于查找查询
- php - 准备好的 SQL 语句中不替换问号
- python - 即使 agg.path.chunksize 很大,也会出现溢出错误
- docker - 在外部 Subversion 分支上保存 docker 容器的整个图像
- reactjs - 无法读取未定义的属性“文件”以发送多个图像
- javascript - 从 FileReader.readAsText 结果中删除损坏的文本
- php - 无法连接到邮件服务器 PHP