【问题标题】:Flow complains about untyped importFlow 抱怨无类型导入
【发布时间】:2020-09-20 19:46:51
【问题描述】:

我开始使用 react-native-geolocation-service 获取用户的 GPS 位置的 React Native 项目,但 Flow 抱怨该库未键入。该库有 Typescript 类型,但似乎没有 Flow 类型,当我导入库时 VS Code 给了我这个错误。

从无类型模块导入会使其成为any 并且不安全!您的意思是在react-native-geolocation-service 的顶部添加// @flow 吗? (untyped-import)Flow(LintError-untyped-import)

我可以说服 Flow 停止抱怨这个库,还是应该改用 Typescript?我对 Flow 没有任何特别的偏好,这正是 react-native init 为我设置的。

我用它来创建项目:

npx react-native init WarmerWalker

然后我像这样添加库:

npm install react-native-geolocation-service

我在我的App.js 中导入这样的库:

import Geolocation from 'react-native-geolocation-service';

我尝试将库添加到.flowconfig 中的untyped section,但这没有帮助。 ignore 部分也没有。

代码似乎有效,只是让 Flow 抱怨。

【问题讨论】:

标签: javascript typescript react-native flowtype


【解决方案1】:

感谢 Alex 的评论,我了解了 strict mode。 react-native 创建的示例应用程序使用了 @flow strict-local,因此导致了问题。删除 strict-local 让它停止抱怨。

但是,由于我要使用的库具有 Typescript 类型定义,因此我将切换到 Typescript。我使用Typescript template 重新生成了示例应用程序,如下所示:

npx react-native init MyApp --template react-native-template-typescript

【讨论】:

  • 通常用什么类型的类型检查器编写库并不重要。您始终可以使用定义存储库添加类型。 github.com/flow-typed/flow-typed 在这种情况下。虽然还没有人输入react-native-geolocation-service,所以在您或其他人这样做之前,您会得到任何信息。
猜你喜欢
  • 2017-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 2019-03-31
  • 2016-08-15
  • 1970-01-01
相关资源
最近更新 更多