Типизация хуков Flashcards
Типизация хуков
При типизации хуков, необходимо создавать отдельную папки хуки.
Раньше типизация:
export const App = () => {
const todolists = useSelector<RootState, Todolist[]>(state => state.todolists)
const tasks = useSelector<RootState, TasksState>(state => state.tasks)
/…/
}
Каждый раз при использовании useSelector приходится типизировать два значения:
state всего приложения, который всегда одинаков;
возвращаемое хуком значение.
Начиная с версии 9.1.0 в React Redux появился новый метод .withTypes для типизации хуков (https://redux-toolkit.js.org/tutorials/typescript#define-typed-hooks):
import { useDispatch, useSelector } from ‘react-redux’
import type { AppDispatch, RootState } from ‘./store’
// Use throughout your app instead of plain useDispatch
and useSelector
export const useAppDispatch = useDispatch.withTypes<AppDispatch>()
export const useAppSelector = useSelector.withTypes<RootState>()</RootState></AppDispatch>