redux-toolkit icon indicating copy to clipboard operation
redux-toolkit copied to clipboard

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

Open RobIsHere opened this issue 1 year ago • 2 comments

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

RobIsHere avatar Aug 13 '24 06:08 RobIsHere

I can't replicate this in the playground - does this happen when you run TSC, or just in your IDE? Which IDE are you using?

EskiMojo14 avatar Aug 13 '24 09:08 EskiMojo14

Thanks for looking into this. The error was in both, on the webpack typescript compiler in the devserver. And additionally it was shown in VS Code.

I can try to make a reproduction, but it will take some time because I'm super busy with a tight work project timeline right now.

RobIsHere avatar Aug 14 '24 13:08 RobIsHere