使用 Typescript 的 Redux reducer 初始状态
Posted
技术标签:
【中文标题】使用 Typescript 的 Redux reducer 初始状态【英文标题】:Redux reducer initial state with Typescript 【发布时间】:2021-01-02 02:40:44 【问题描述】:我想用 typescript 创建一个 reducer!
paymentReducer.tsx
let initialState =
saved: [],
;
export interface Payment
saved: ISavedPayment[];
export let payment = (
state = initialState,
type, payload : PaymentActions
): Payment =>
switch (type)
case SAVED_PAYMENTS_LOADED:
return ...state, saved: payload ;
default:
return state;
;
没有错误!但是reducer的state
参数中saved
数组的类型变成了never
。但应该是ISavedPayment[]
?
(parameter) state: saved: never[];
【问题讨论】:
为什么不明确指定类型? 您可以添加任何代码吗? 【参考方案1】:明确指定 initialState 的类型:
const initialState: saved: ISavedPayment[] =
saved: [],
;
另见:
What is "not assignable to parameter of type never" error in typescript? TypeScript: Creating an empty typed container array [] is regard wrong as never[] when strictNullChecks is true #13140【讨论】:
以上是关于使用 Typescript 的 Redux reducer 初始状态的主要内容,如果未能解决你的问题,请参考以下文章
typescript + redux:在父组件中排除 redux props
无法在 redux 、 react/typescript 中使用 rootReducer
Redux 的 combineReducers 和 TypeScript
如何使用 redux-thunk 和 TypeScript 调度 ThunkAction