OriHero
OriHero

Reputation: 1228

Redux reducer initial state with Typescript

I would like to create a reducer with typescript!

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;
    }
};

No errors! But the type of saved array in state parameter of reducer becomes never. But it should be ISavedPayment[]?

(parameter) state: { saved: never[]; }

Upvotes: 2

Views: 2265

Answers (1)

Lesiak
Lesiak

Reputation: 26094

Specify the type of initialState explicitly:

const initialState: { saved: ISavedPayment[] } = {
    saved: [],
};

See also:

Upvotes: 2

Related Questions