import { createSlice, PayloadAction } from '@reduxjs/toolkit'; interface InfoState { name : string age : number email : string } const initialState = { name: '', age: 0, email: '' } as InfoState const userSlice = createSlice({ name: 'user', initialState: { value: initialState }, reducers: { login(state, action: PayloadAction<InfoState>) { console.log(typeof(action.payload.age)); state.value = action.payload }, logout(state) { state.value = { name: '', age: 0, email: '' } }, }, }) export const { login } = userSlice.actions export const { logout } = userSlice.actions export default userSlice.reducerHay un archivo de mecanografiado del kit de herramientas de Redux.
dispatch(login({ name: 123, age: "20", email: "email@gmail.com" }))He despachado los siguientes valores en javascript
Es diferente del tipo establecido en TypeScript, pero el estado cambia. Quiero saber por qué.
TypeScript solo existe en su editor para decirle dónde está haciendo mal. En su navegador, o JavaScript para el caso, las anotaciones de TypeScript no tienen significado. TypeScript no evitará que hagas algo estúpido en tiempo de ejecución, ya que ninguna de tus anotaciones de TypeScript existe en el navegador del usuario.
Si desea tener una verificación en tiempo de ejecución, debe escribirlo a mano. Ese no es el trabajo de TypeScript ni el trabajo de Redux-Toolkit.