Redux × TypeScript
以下について、個人的な見解をつらつら書いていこうと思います。
- 素の Redux
- redux-actions
- typesafe-actions
- typescript-fsa
素の Redux
最近はきちんと型が付与されているイメージですが、最近ほぼ素の Redux で書いていないのでどこまで型が正しいか不明です。
FSA 周りとかどうなってるんだろう…。
redux-actions
おそらく一番有名なやつです。
ただ、個人的には書きっぷりのクセの強さがイマイチ、Redux っぽくない感じです。
開発者が手放しちゃっているので、現状開発は止まっているくさいです。
ドキュメントも見やすいとは言えないのが残念です。
typesafe-actions
2 番目に有名なやつです。
書きっぷりは悪くないですし、使った感じはtypescript-fsaの上位互換っぽく感じます。
便利な機能も多いです。
redux-observableやredux-sagaなどのサポートも強いのが良いですね。
ただ、これも開発者が手放しちゃっているので、現状 v4 から v5 へのアップデートが止まっています。
そのため、ドキュメントがごっちゃになっていて、型も合わない箇所が多く、結構辛いです。
あと、機能過多過ぎるせいで、逆にコードが属人化しやすい印象があります、ぶっちゃけここまで機能はいらないよなぁと。
v4 で開発を行うのはアリかもですが、v5 はまだ使えないですし、多分もう一生このままかなぁと。
typescript-fsa
多少マイナー寄りですが、自分はこればかり使っています。
結構シンプルで、本当に型を付与しただけといった感じのパッケージです。
そのため、素の Redux から移ってきても違和感がなく、あまり迷うことなく書ける感じがあります。
一部の型が弱い感触はありますが、ぶっちゃけ通常の開発では全く困りません。
こちらもredux-observableやredux-sagaなどのサポートが強いのが良いですね。
公式ドキュメントも結構わかりやすいのでオススメです。
個人的にはやっぱり typescript-fsa かなーと。