npx create-react-app my-app --typescriptで作成したアプリでHooksを利用しています。
jsx
1const [state, setState] = useState(false);
コードに対してVScodeが上記画像のように型を推論してくれたので、stateとsetStateに下記のように型を付与しました。
jsx
1const [state, setState]: [ 2boolean, 3React.Dispatch<React.SetStateAction<boolean>> 4] = useState(false);
しかし、下記のエラーが表示されました。
型 '[false, Dispatch<SetStateAction<false>>]' を型 '[boolean, Dispatch<SetStateAction<boolean>>]' に割り当てることはできません。
型 'Dispatch<SetStateAction<false>>' を型 'Dispatch<SetStateAction<boolean>>' に割り当てることはできません。
型 'SetStateAction<boolean>' を型 'SetStateAction<false>' に割り当てることはできません。
型 'true' を型 'SetStateAction<false>' に割り当てることはできません。
上記エラーを直す方法をご教示いただけないでしょうか。
試したこと
setStateを子コンポーネントに渡し、子コンポーネントのpropsをtypeで定義した場合、React.Dispatch<React.SetStateAction<boolean>>を設定してもエラーが出ませんでした。
ただし親コンポーネントでの型定義は上記の通りエラーが出ます。
また、codesandboxでサンプルを作成しエラーが出た型と同じ型を付与したところ、エラーが出ませんでした。
追記 useStateの型
回答1件
あなたの回答
tips
プレビュー