Redux is a pattern that allows you to manage your event and application states in a safe way. It allows you to make sure that your application-wide states, resulting from navigation events or not, are managed in a single, non-accessible place.

Usually, the states of your application are stored in a TypeScript interface. Following the example we used in the previous section, we will implement login/logout functionalities for a user using a custom APIService that consumes JSON. In our case, the application has only one state: logged. Consequently, the interface would look like this:

export interface IAppState { 
    logged: boolean; 

This interface only contains a single logged boolean. It might seem like overkill to have an interface for ...

Get Angular Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.