【问题标题】:What does this question mark mean in Flow: "?() => void"这个问号在 Flow 中是什么意思:“?() => void”
【发布时间】:2017-05-13 05:11:30
【问题描述】:

最近在GitHub project看到了这个函数声明:

function configureStore(onComplete: ?() => void) {

这个问号是关于什么的?

我猜,onComplete 是命名参数,获取函数调用。问号是说明这个参数可以是可选的,并且默认为“void”,这意味着与 nil/null 指针相同,这意味着此处分配的“无闭包”。

我说的对吗?

【问题讨论】:

标签: javascript flowtype


【解决方案1】:

差不多了。

() => void 是 Fl​​ow 对不返回任何内容的函数的注解(undefined,又名void 0)。

?MyType 中的前导问号是 Flow 表达可空类型的方式。

因此在这种情况下,configureStore 接受一个名为 onComplete 的参数,该参数必须为 null 或不返回任何内容的函数。

Flow 不会为 onComplete 添加默认值或以任何方式强制它,因为与 typescript 不同,Flow 不会生成任何新的 JS 代码。在运行时,所有 Flow 注释都被剥离以获取 vanilla JS,仅此而已。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多