#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
, так что вы получите что-нибудь, пока вы или кто-то другой не сделаете это.