函数参数中的?()=> void的目的是什么?

问题描述 投票:1回答:1

Facebook's open source F8 Application中存在以下函数

async function configureStore(onComplete: ?() => void) {
  // function body
}

configureStore参数中,onComplete: ?() => void的目的是什么?

javascript flowtype
1个回答
2
投票

这是Flow语法,表示configureStore采用可选的回调参数onComplete,可以是null

但是,此文件中缺少// @flow注释。使用Flow类型检查的文件应该在任何代码之前在文件顶部包含此注释。

此注释有两个部分:

1. () => void表示流函数类型。在上面的例子中,onComplete参数是一个没有参数的函数,返回类型为void

2. ?表示Maybe类型。在上面的例子中,onComplete是一个可选参数。

也许类型接受提供的类型以及nullundefined

注意:订单很重要。如果?:之前(即:onComplete?:),那么函数将接受提供的类型和undefined,但不接受null

参考:

© www.soinside.com 2019 - 2024. All rights reserved.