首页 > 解决方案 > Flow 抱怨无类型导入

问题描述

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

从一个无类型的模块导入它any是不安全的!您的意思是添加// @flow到顶部react-native-geolocation-service吗?( 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但这没有帮助。部分也没有ignore

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

标签: javascripttypescriptreact-nativeflowtype

解决方案


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

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

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

推荐阅读