ESLint报告流类型全局类型的no-undef错误

时间:2017-07-13 19:08:32

标签: reactjs eslint flowtype eslint-config-airbnb

我在/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这些类型确实被声明为全局?或者我应该将它们添加到某个忽略列表中?

2 个答案:

答案 0 :(得分:12)

事实证明(就像我想的那样)不是将全局类型添加到eslint忽略列表的方式。实际上它是由eslint-plugin-flowtype处理的,我已经安装了但是我没有扩展它:

<强> .eslintrc

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

答案 1 :(得分:0)

您可以使用文件内部的注释,在eslint配置文件或package.json中定义全局变量。在eslint docs中阅读如何操作。如果您需要更多帮助,请发表评论。