Поток жалуется на нетипизированный импорт

#javascript #typescript #react-native #flowtype

#javascript #typescript #реагировать — родной #flowtype

Вопрос:

Я начинаю с проекта React Native, который использует react-native-geolocation-service для получения местоположения пользователя по GPS, но Flow жалуется, что библиотека нетипизирована. В библиотеке есть типы Typescript, но, похоже, нет типов Flow, и VS Code выдает мне эту ошибку при импорте библиотеки.

Импорт из нетипизированного модуля делает это any и небезопасно! Вы имели в виду добавить // @flow в начало react-native-geolocation-service ? ( untyped-import )Поток(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 Раздел тоже.

Код, кажется, работает, он просто заставляет поток жаловаться.

Комментарии:

1. Используете ли вы flow в строгом режиме ?

Ответ №1:

Благодаря комментарию от Алекса я узнал о строгом режиме. Созданный образец приложения react-native использовался @flow strict-local , так что это вызывало проблему. Удаление strict-local заставило его перестать жаловаться.

Однако, поскольку библиотека, которую я хочу использовать, имеет определения типов Typescript, я собираюсь переключиться на Typescript. Я восстановил образец приложения с помощью шаблона Typescript, например:

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

Комментарии:

1. Обычно не имеет значения, на каком типе средства проверки типов написана библиотека. Вы всегда можете добавить типы, используя репозиторий definitions . github.com/flow-typed/flow-typed в данном случае. Хотя никто еще не набрал react-native-geolocation-service , так что вы получите что-нибудь, пока вы или кто-то другой не сделаете это.