Bezdepbonusu7Программирование: статьи и ответы

Вопрос

ESLint сообщает об ошибке no-undef для глобальных типов потокового типа

Автор вопроса: Tomasz MularczykОтветов: 2

У меня есть глобальные типы, определенные в /flow-typed/redux.flow.js :

declare type Action = {|
  +type: string,
  +payload: any,
|}

declare type State = {|
  +ui: UI,
  +user: User,
  +team: Team,
  +projects: Project[],
  +profile: Profile,
|}

declare type UI = {|
  +isSliderOpen: boolean,
  +isModalVisible: boolean,
  +modalAction: string,
  +modalPayload: Object,
|}

...

Я добавил конфигурацию airbnb eslint в свой проект и теперь получаю:

type Props = {
  logout: () => Action, //error ESLint 'Action' is not defined.(no-undef)
  user: UserDetails, //error ESLint 'UserDetails' is not defined.(no-undef)
}

Его чисто eslint вина. Все настроено правильно и расходом доволен сам по себе.

Как сообщить eslint, что эти типы действительно объявлены глобальными? или я должен добавить их в какой-то список игнорирования?

reactjsflowtypeeslinteslint-config-airbnb

Ответы

Ответ 1 · рейтинг 21 · Tomasz Mularczyk

Оказалось (как я и думал) способ не в том, чтобы добавлять глобальные типы в список игнорирования eslint. На самом деле все это обрабатывается eslint-plugin-flowtype, который я уже установил, но не не расширяйте его как:

.eslintrc

"extends": ["airbnb", "plugin:flowtype/recommended"],
"plugins": [
  "flowtype"
],

Ответ 2 · mradziwon

Вы можете определить глобальные переменные либо с помощью комментариев внутри файла, либо в файле конфигурации eslint, либо в package.json. Узнайте, как это сделать, в документации eslint. Если вам нужна дополнительная помощь, оставьте комментарий.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы