0
流说明下面返回voidnullify
的类型不兼容。我想我错过了什么?通用高阶函数的不兼容流类型
import faker from 'faker'
type P =
| string
| number
| boolean
function voidnullify(func:() => P): ?P {
const random: number = faker.random.number({
min: 1,
max: 10
})
const result = func()
if (random <= 7) return result
else if (random <= 9) return null
else return undefined
}
function someBoolean() {
return true
}
function someString() {
return "hello"
}
function someNumber() {
return 1
}
let maybeNum: ?number
let maybeStr: ?string
let maybeBool: ?boolean
maybeNum = voidnullify(someNumber)
maybeStr = voidnullify(someString)
maybeBool = voidnullify(someBoolean)
如果我将P更改为X,或者如果我删除了某个联合类型,Flow仍会告诉“无错误”,这是误报。 –
对不起nvm,它实际上工作,非常感谢 –