🐻

Zustandで型推論をうまく使うには

2024/08/10に公開

はじめに

ZustandはTypeScriptサポートしてますが、あまり書き心地が良いとは言えません(主観)。

通常は次のような書き方をします。

import { create } from 'zustand'

interface CountState {
  count: number
  increase: (by: number) => void
}

const useCounterStore = create<CountState>(
  (set) => ({
    bears: 0,
    increase: (by) => set((state) => ({ bears: state.bears + by })),
  }),
);

この書き方を好む人もいますが、 CountState の宣言を省略して型を自動で生成してもらいたい場合があります。

Poll

これを実現する方法(ライブラリ)はいくつかあるのですが、今回まとめてついったーPollにしました。

https://x.com/dai_shi/status/1822068561797640458

code

https://github.com/pmndrs/zustand/discussions/2672

https://zenn.dev/dai_shi/articles/af7d1dfe17a35e

おわりに

React Fanというコミュニティをやっていますので、ご興味ある方はご参加ください。

近々、オフラインの交流会も予定しています。

Discussion