flowtype

flowtype + eslint 環境で eslint の no-undef で declare された型の型アノテーションの検出を無視する

More than 1 year has passed since last update.


どんな状況か

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
}
}

これに辿り着くまで長かったので、一応メモしておく。ルール名がわかりにくいと思う。


参考