どんな状況か
include してる型宣言ファイルでFooを宣言しているとする
decrale type Foo = {};
このとき 次のコードは eslint の no-undef で警告が出る
const foo: Foo = {};
定義ファイルで declare された型はどこかからでもグローバルに参照可能だが、flow はそんなidentifier は知らないと警告してくる
解決策1
.eslintrc の globals に Foo を追加する。
これは動くけどインスタンス変数としてFooにアクセスしてしまうのを許容してしまう。ダメ。
不満を持ってたら次の解決策を見つけた。
解決策2
https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-define-flow-type を使う。
{
"parser": "babel-eslint",
"plugins": [
"flowtype"
],
"rules": {
"flowtype/define-flow-type": 1,
"flowtype/use-flow-type": 1
}
}
これに辿り着くまで長かったので、一応メモしておく。ルール名がわかりにくいと思う。