Actualmente en el reductor de Redux como un tipo de escritura mecanografiada para la action , estoy usando any archivo . ¿Qué debo reemplazar ya any usarlo es una mala práctica?
Traté de usar el tipo de Action importando import { Action } from "redux"; pero luego recibo errores porque Property 'homePageMovies' does not exist on type 'Action<any>'. y equivalente a esto para otros tipos de acción.
reductor:
import { ADD_HOME_PAGE_MOVIES, CHANGE_SELECTED_MOVIE, IS_MOVIE_PAGE_OPENED, SEARCHED_MOVIE, CURRENT_PAGE } from "./actions"; const initialState = { homePageMovies: [], selectedMovie: 0, isMoviePageOpened: false, searchedMovie: '', currentPage: 1 } function rootReducer( state = initialState, action: any ){ switch(action.type) { case ADD_HOME_PAGE_MOVIES: return { ...state, homePageMovies: action.homePageMovies } case CHANGE_SELECTED_MOVIE: return { ...state, selectedMovie: action.selectedMovie } case IS_MOVIE_PAGE_OPENED: return { ...state, isMoviePageOpened: action.isMoviePageOpened } case SEARCHED_MOVIE: return { ...state, searchedMovie: action.searchedMovie } case CURRENT_PAGE: return { ...state, currentPage: action.currentPage } default: return state; } } export default rootReducer; export type RootState = ReturnType<typeof rootReducer> ¿Con qué debo reemplazar any ?
¡Gracias!
Puede darle el tipo AnyAction en su lugar:
Algo como esto:
import { AnyAction } from 'redux' interface CounterState { value: number } const initialState: CounterState = { value: 0 } export default function counterReducer( state = initialState, action: AnyAction ) { // logic here }En general, recomendamos oficialmente usar el kit de herramientas oficial de Redux, especialmente con TypeScript, ya que reduce enormemente la cantidad de tipos de TypeScript que tendrá que escribir en primer lugar y está muy orientado a TypeScript de estilo de inferencia. Preguntas como esta no surgirán allí.
En cuanto a lo poco que está involucrado TypeScript, eche un vistazo al primer ejemplo en esta página de documentación de API y cambie entre la pestaña TS y JS y busque las diferencias.
Si desea comenzar con esto, puedeir aquí para una comparación rápida y luego seguir el tutorial oficial de Redux .
En cuanto a las instrucciones de configuración específicas de TypeScript, consulte la página de documentos de TypeScript QuickStart.
PD: Sé que esta no es la respuesta a la pregunta, pero generalmente las personas hacen esta pregunta porque están siguiendo tutoriales horriblemente desactualizados en lugar de la documentación oficial y quiero que los conozcan.