Redux, Typescript, Angular, Redux Observable, Ngrx.
literal from it’s source, without providing generics explicitly ( yay ): With that our DoSomethingAction will have following type: { type: '[misc] do something' } PROS: ( as before ) action type is inferred from implementation and because of that, it stays in sync! ( as before ) we don’t have to