首页 > 解决方案 > 如何为 React 钩子(useState 等)做流类型注释?

问题描述

我们应该如何使用带有反应钩子的流类型注释,例如useState?我已经尝试搜索应该如何实现它们的一些示例,但找不到任何东西。

我试过这个:

const [allResultsVisible, setAllResultsVisible]: [ boolean, (boolean) => void, ] = useState(false);

这不会引发任何与流程相关的错误,但我不确定这是否正确或注释钩子的最佳方式。如果我的尝试不正确或不正确,我应该怎么做?

标签: reactjsflowtype

解决方案


Flow 推断类型,如在Flow 库中添加了对钩子的支持的 PR 中所示。

更新

正如我在另一个答案的评论中所讨论的那样,必须在上下文中使用结果变量才能使类型检查按预期工作。

const [loading, setLoading] = React.useState(true);
(loading: boolean);

setLoading('foo') // Flow error

对比

const [loading, setLoading] = React.useState(true);

setLoading('foo') // no Flow error

推荐阅读