Typescript in React: useContext, useReducer, Type assertion

Implement Typescript typing within React applications
Utilise useContext and convert to typescript
Combine useReducer and useContext and overcome any complications with the Typescript engine when typing the app flow.