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,它實際上工作,非常感謝 –