Типизация хуков Flashcards

1
Q

Типизация хуков

A

При типизации хуков, необходимо создавать отдельную папки хуки.

Раньше типизация:
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>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly