我有一个接受回调并运行它的函数(跳过注释):
const run = (cb) => cb();
我的功能需要一个数字:
const addTen = (arg: number) => arg + 10;
我有一个函数 OPTIONALLY ACCEPTS 一个数字参数,但在调用run()
内部,在回调内部调用addTen()
传递其可选参数:
const addInCallback = (value: ?number) => {
// correctly complaints about addTen not accepting null/undefined
run(() => addTen(value))
}
使用:
const addInCallback = (value: ?number) => {
run(() => {
if (value) {
addTen(value)
}
})
}
不能工作
const addInCallback = (value: ?number) => {
if (value) {
run(() => addTen(value)) // here, value can't be null/undefined
// yet it still complaints
}
}
不能工作
const addInCallback = (value: ?number) => {
if (!value) return;
run(() => addTen(value)) // here, value can't be null/undefined
// yet it still complaints
}
如果我不想在回调中进行检查,我该如何处理这个问题,以便回调可以理解上面的范围已经明确表明value
不能null/undefined
1}}?