峻行SuPICEではTypeScriptを用いて開発をしています。著者である私もTypeScriptのユーザです。typeも挙げられると思います。最近個人的にFlowを使う機会が手に入りました。良い機会なのでTypeScriptのユーザがFlowを使用してみての感想を書いていこうと思います。Codeで使う分にはどちらもさほど差がないように感じます。関数や変数の説明の表示、補完、etc.。個人的にやって欲しいことは大体やってくれています。DefinitelyTypedとFlow-typed型定義のレポジトリですね。最初DefinitelyTypedと比べてFlow-typedは質が高そうなイメージがありました。definitions」とか言ってますし...)しかし「Genericsを使えば回避できそうなのにany使ってる」とか物足りないものはやっぱり存在しました。Flow-typedで完全に動かないというものにはまだ遭遇していないので、確かに品質は良いのかもしれません。どっちもどっちだなというのが感想です。数に関しては絶対的にDefinitelyTypedの方が多いです。約2940」(※1)となりました。メンテされていないものや、バージョンごとの重複などもある(少なくともflow-typedにはありました)ので正確な数字ではないかもしれませんが、10倍以上の差があることが分かります。TypeScriptよりFlowの方がサードパーティのライブラリの型は自力で書かなければいけないケースが多いかもしれませんね。(Reactだとかaxiosだとかlodashだとか有名どころのライブラリは大体あるので特に気にしなくてもよいかもしれません。使ってみるという時には不便です。後OCamlで書かれているのも辛さがあります。TypeScriptと比べてソースを読むハードルが格段に高いです。TypeScriptのソースもJavaScriptです。いざ問題が発生した際にOcamlのFlowよりは楽にソースを追えるのではないでしょうか。GeneratorTypeScriptはyieldに関しての型定義ができません。Generatorを使うならFlow一択だと思います。Bのようなやつ)に関してです。どちらか片方の型にしかないプロパティやメソッドを使いたい場合、片方の型でしかこの処理は行われないことを示してやらなければなりません(disjoint)。TypeScriptの方がdisjointに関しては楽でした。サードパーティのライブラリを使うときなど、それだけでは上手くいかないケースも多いです。Typeを使うという回避策があります。頑張れば似たようなことをFlowでもできますが、cast用の関数を作ってやったりなどが必要で結構面倒です。InterfaceA;ざっと使ってみた感想は以上です。確かに差はありましたが、どちらが良いか決定づけられる程大きなものはないように感じました。巷ではFlowを推している人が多い印象があります。確かに以前はTypeScriptはnullが非許容にできないとか、unionがdisjointできないとか色々ありました。2.1.4以降で追加されていきました。今現在新しく選べというなら慣れの問題もあるので著者はTypeScriptを選ぶと思います。今後追加される機能次第では気持ちが揺らぐかもしれません。これからもTypeScriptとFlowからは目が離せませんね。新機能ご紹介!SuPICEバージョンアップしました!関連するキーワードSuPICETerraSkyBaseについてTerraSkyBaseはクラウドサービスを手掛ける株式会社テラスカイのコンテンツプラットフォームです。