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

У меня есть глобальные типы, определенные в /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, что эти типы действительно объявлены глобальными? или я должен добавить их в какой-то список игнорирования?


person Tomasz Mularczyk    schedule 13.07.2017    source источник


Ответы (2)


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

.eslintrc

"extends": ["airbnb", "plugin:flowtype/recommended"],
"plugins": [
  "flowtype"
],
person Tomasz Mularczyk    schedule 15.07.2017

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

person mradziwon    schedule 13.07.2017
comment
Это единственное решение? Тогда мне пришлось бы игнорировать каждый тип из каталога с потоковым типом, например: SyntheticInputEvent или Dispatch - person Tomasz Mularczyk; 14.07.2017