如何在flowjs中指定可以未定义的参数

时间:2016-09-06 06:16:53

标签: javascript flowtype

我是flowjs的新手,还不知道如何在flowjs中建模未定义参数的典型用例。

weights

使用flow检查上述功能时,会显示以下错误消息:

  • 无法在可能的空值函数调用上调用函数。
  • 无法在可能未定义的值上调用函数

我确实理解为什么会显示错误但是我不确定如何告诉flowjs这是故意的,因为仅当参数不为null或未定义时才调用回调?

1 个答案:

答案 0 :(得分:1)

Flow仅在_.isFunction(callback)是函数时才知道true返回callback。它只知道它返回一个布尔值(如果你有下划线/ lodash设置的接口文件)。您应该进行本机JS检查,然后Flow可以将callback的类型从?Function优化为Function。像这样:if (typeof callback === 'function') { callback() }

更简单的类型检查也应该起作用:if (callback) { callback() }因为Flow知道如果callback不是假的,它必须是一个函数。

https://flowtype.org/docs/dynamic-type-tests.html

了解详情