dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

FlowtypeのUtility TypesでESLintエラーを出さないようにする

ちょいメモ。
Flowtype の Utilty Types を使っていて

type Exact<T> = T & $Shape<T>;

などと書いたら ESLint でエラーになった。

error  '$Shape' is not defined  no-undef

eslint-plugin-flowtype は導入済みで、各バージョンは以下の通り。

$ npm list --depth=0 | grep eslint
├── babel-eslint@7.2.2
├── eslint@3.19.0
├── eslint-config-airbnb@13.0.0
├── eslint-plugin-flowtype@2.30.4
├── eslint-plugin-import@2.2.0
├── eslint-plugin-jsx-a11y@2.2.3
├── eslint-plugin-react@6.10.3

解決策

.eslintrc に以下の2行を追加すると出なくなった。

   "rules": {
      ...
+    "flowtype/define-flow-type": 1,
+    "flowtype/use-flow-type": 1,
   }

が、それぞれ何を指しているのか、したがってなぜこれでエラーが出なくなったかはよくわかっていない。

ここにたどり着いたのはたしかこの記事を読んでだったと思う。