Redux + TypeScirpt のときの Props について

Redux + TypeScript を使った時に、コンポーネントの Props の型をどうやって定義するかというお話になります。

個人的には以下のような型定義をよくします。

type Props = OwnProps & ReturnType<typeof mapStateToProps> & ReturnType<typeof mapDispatchToProps>

そして、OwnProps については、仮に空のオブジェクトであっても省略しない方が良いかなと思っています。

というのも、定義し忘れたのか意図的に書かなかったのかがわからないからです。

空の場合は以下のようになると思います。

type OwnProps = Record<string, never>
type Props = OwnProps & ReturnType<typeof mapStateToProps> & ReturnType<typeof mapDispatchToProps>