Flow 是否适用于任何 JavaScript 框架?

Does Flow work with any JavaScript framework?

不寻找任何建议,只是 objective 评估是否可以在当前状态下使用 Flow 对 any JavaScript 框架进行类型检查。

与 TypeScript 相比,随着 Flow 的流行度下降,框架声明文件往往用 TypeScript 编写,转换既不简单也不自动。是否仍然有一个框架可以很好地与 Flow 类型推断一起工作,或者您可以为其动态编写自己的框架声明?或者 Flow 现在主要用于与框架无关的业务逻辑?

回答我自己的问题,我认为查看流类型的回购并寻找特定的库或框架将回答这个问题。没有最近的更新 = 没有支持,除非你有时间和兴趣自己做一个 PR。

https://github.com/flow-typed/flow-typed

所以主要的是反应,因为它的类型定义直接内置到流程项目中。另一个我没有亲自研究过的是 Vue,因为它是用 flowtype 编写的。但我无法确认如何获得他们的类型定义,因为我没有亲自使用过它。

但即使一个库不附带类型定义,也不意味着它不支持流。一个明显的例子是 styled-components,它内置了第一个 class 流支持的流,但不是开箱即用的。相反,他们的定义是通过流式传输的。我不确定他们的理由是什么,但很可能是消除了流版本与样式组件版本的耦合,消费者可以独立升级。

总的来说,如果你不能轻易找到一个 lib def,要么没有多少人使用它,要么消费者不会打扰,只是使用任何类型。由于世界上有许多项目不使用任何静态类型检查器,因此进行部分静态分析可能就足够了。