回调中的问号

Question mark in callback

static setItem(key: string, value: string, callback?: ?(error: ?Error) => void)

这是AsyncStorage中setitem的声明。第三个参数是回调。有人可以在这里解释问号的使用吗?我熟悉如何使用 promise 但无法获取问号句柄。

AsyncStorage 使用 flow - Facebook 的开源静态类型检查器。您会在文件的开头找到@flow,它标记了启用流的源。 Flow 对变量类型进行了大量检查(包括自动类型推断),但它还允许您指定变量和参数的类型。例如,在上面的示例中,'key: string' 表示键应该是字符串类型(它不是有效的 javascript 构造 - 您不能在 javascript 中指定类型)。 React 内置了将其转换为纯 javascript 的转换器(因此所有类型都被剥离)但在此之前,流程会检查类型是否正确传递并找到诸如传递 null 或 undefined 之类的东西,然后将其用作对象等等其他检查。您可以阅读 http://flowtype.org/.

中的规格

所以回答你的详细问号问题: