首页 > 解决方案 > 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 理解我想要什么?

标签: typescript

解决方案


推荐阅读