@mizchiさんの facebook/flowファーストインプレッション
大雑把にはfacebook製のTypeScriptだと思っていれば良いです。
があまりしっくりこなかったので、 公式About を読んでみた。(誤訳あったらすみません。)
Flowとは(ざっくり)
- JSのための static type checker
- JSファイルの冒頭に
/* @flow */
を挿入することで型チェック(あるいは、同時にコンバート)が働くようになる。 - 逆に言うと、
/* @flow */
が無いファイルは無視される。 - 初回はコードベース内の全ファイルに対して解析を行い、その後は バックグラウンドで それらのファイル(と依存関係にあるもの)の変更を監視して型チェックする。
- チェックの結果はサーバに蓄積されており、クエリが発行された際に即座に利用できる。
- 故に開発者はコンパイルの遅延を感じなくて済む。
公式の結び
- 「まだめっちゃWIPだからみんな力を貸してね!簡単かつ安全にJSの変換と最適化ができる環境を提供したいなって思ってるから。」
(余談)Flowにファイル変更を監視させるには
-
flow start
でバックグラウンドでサーバ起動 -
flow
でサーバに蓄積されている型チェックの結果を取得 -
flow stop
でサーバを停止
所感
- 個人的にはAltJSという位置づけより、やはり「static type checker」として使ってみたいなと思うのであった。