I have written some big games before with lots of magic numbers and magic strings everywhere which eventually became a nightmare to maintain. So now I am paranoid about ever having them in my code. For a smaller program I guess it does not matter too much though but its best to make a habit of not using magic strings. There is even a specific moment I remember in the pluralsight es6 react redux course that the guy says “You likely cringed earlier when I used hard coded strings for action types. And hey if you didn’t you should have, magic strings are just typos waiting to happen.”
With strings you won’t have code completion so you might make a typo, if you decide to change the type in action later you might forget to change it in reducer then there won’t be any errors so it might take a while to find. If you had it as constant then use refactor in IDE like webstorm it would rename every place at once, or if you change it in actiontypes.js and forget other places it will give you an error that the variable does not exist at least.
Oh yeah with larger programs you might have actions that do things in multiple reducers rather than just one which makes it even harder to not make a mistake.
For example in my react-redux-roguelike my actionTypes.MAPGENERATE is used in my monsters reducer, players reducer, and my tileGrid reducer. There were a few times I made changes to my action types without even remembering that I was using the action type in a different reducer so I would have never remembered to change it if I used strings.