我知道有一些相似的问题,但是我还没有看到解决方案。
type ID = string
type MaybeID = ID | null
const defaultBranchId: ID = "1"
const currentBranchId: MaybeID = null
export function useBranchFilter1(withDefaultBranch = true) {
if (currentBranchId === null && withDefaultBranch === true) {
return defaultBranchId
}
return currentBranchId
} // <-- infers to MaybeID return type
我希望总是得到ID
返回类型。
这里是the playground link,我尝试了几次尝试-未成功。
感觉很简单,但是我希望它不能那样工作,因为它基于运行时值。
答案 0 :(得分:1)
返回类型正确。返回类型有两种,一种是string
,另一种是null
,从MaybeID
开始就适合类型type ID = string
。