繁体   English   中英

为什么流类型化的libdefs类型不能始终如一地工作?

[英]Why do flow-typed libdefs types not work consistently?

我有一个使用Flow进行静态类型检查的React项目; 我有使用flow-typed安装的npm 3rd第三方库的libdefs。 但是,有时无法识别类型。 例如,这是一个使用react-router-dom npm包的React组件,带有identifier ... Could not resolve name使用相应flow-typed/npm/react-router-dom_v4.xxjs的类型时的流错误:

流量误差

该类型虽然在libdef中:

反应路由器域流式

我正在使用其他flow-typed进行此操作,并且它正在工作。 我已确认已在package.json安装了最新的库,并且安装了最新的相关flow-typed libdef:

package.json lateset react-router-dom

流式最新反应路由器域

来自https://github.com/flowtype/flow-typed/tree/master/definitions/npm/react-router-dom_v4.xx

我也尝试过像ES6模块那样显式导入类型:

import type { RouterHistory } from 'react-router-dom'`

但这会导致RouterHistory not found in 'react-router-dom'错误中RouterHistory not found in 'react-router-dom' ,即使您可以在上面的屏幕截图中看到它也存在于flow-typed/npm/中的react-router-dom_v4.xxjs libdef中; 我相信,只有在npm库中具有*.js.flow文件的情况下,类型的显式导入才有效( react-router-dom没有,但在flow-typed定义了)。

所以问题是: 如果在相关的flow-typed libdef中定义了RouterHistory类型,为什么它不起作用

您的导入声明有误。 应该是这样的:

import type { RouterHistory } from 'react-router-dom'

编辑:

看来RouterHistory类型在react-router包中。 由于react-router-dom使用react-router作为基本依赖项,因此您应该添加带有flow-typed的react-router软件包。 流反应的,路由器

您很可能缺少// @flow注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM