2

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

OriHero
  • 1,168
  • 1
  • 10
  • 24

1 Answers1

2

Specify the type of initialState explicitly:

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

See also:

Lesiak
  • 22,088
  • 2
  • 41
  • 65