Skip to content

Destructuring reducer action parameter => Wrongly ActionCreatorWithOptionalPayload while strict is set to true #4559

Open
@RobIsHere

Description

@RobIsHere

I've seen all the other issues and double checked that "strict": true is in my tsconfig.json
"typescript": "^4.9.5" with up to date create react app setup

This Works as part of a slice and the created action creator becomes ActionCreatorWithPayload

    switchAccessory: (state, action: PayloadAction<{ item: Accessory; isSelected: boolean }>) => {
      if (action.payload.isSelected) {
        if (!state.accessories.some((x) => x.id === action.payload.item.id)) {
          // Add accessory if not already there
          state.accessories.push(action.payload.item);
        } else {
          // Add accessory if not already there
          state.accessories.push(action.payload.item);
        }
      }
    },

This does not work and the action creator becomes ActionCreatorWithOptionalPayload

    switchAccessory: (state, { payload }: PayloadAction<{ item: Accessory; isSelected: boolean }>) => {
      if (payload.isSelected) {
        if (!state.accessories.some((x) => x.id === payload.item.id)) {
          // Add accessory if not already there
          state.accessories.push(payload.item);
        } else {
          // Add accessory if not already there
          state.accessories.push(payload.item);
        }
      }
    },

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions