I am not too well-versed in TypeScript, but it would be nice if I could verify at compile time that I am not mutating state in my reducers.
This is an interesting idea! However, it's currently a bit difficult to define a value as completely readonly in TypeScript. See this GitHub issue: