typescript - TypeScript 中的返回类型可以有条件地为空吗?
问题描述
我希望这个函数有条件地返回一个可以为空TGoalType
的类型,如果它被提供了一个可以为空的类型,或者如果它被提供了一个不可为空的类型,那么它是一个不可为空的版本。
function mapGoalType<TGoalType extends IParentGoal | undefined>(
parentGoal: TGoalType
): null extends TGoalType ? MultiSelectOption | null : MultiSelectOption {
if (!parentGoal) {
return null; // Typescript complains here
}
...
}
我在 Typescript 中尝试了类似于Conditional types for nullable 的代码,但 TypeScript 不合作,因为它抱怨我不能为不可为 null 的返回类型返回 null。有没有办法让 TypeScript 理解我想要什么?
解决方案
推荐阅读
- html - 如何填充边缘折叠的兄弟姐妹之间的空间?
- javascript - 如何将变量字段名称放入 FormAssembly 表单上的隐藏字段中
- modal-dialog - 为什么模态视图在 SwiftUI 中只出现一次
- apache-nifi - Apache NiFi EvaluateJson 路径以 $(美元符号)开头
- javascript - 当militaryHour变量设置为0时,为什么系统打印0而不是我设置的小时(变量)是12?
- c# - 如何使用 JsonExtensionData 反序列化对象,使用 JsonProperty 序列化对象
- java - 我很难确定 LoopWhileDO 的作用范围
- javascript - 登录到不使用 POST 请求的网站 - 使用 Python 进行网络抓取
- java - 迭代表行并单击行内的按钮/链接
- javascript - 谷歌地图根据 xml 值更改标记颜色