Book Image

TypeScript Blueprints

By : Ivo Gabe de Wolff
Book Image

TypeScript Blueprints

By: Ivo Gabe de Wolff

Overview of this book

TypeScript is the future of JavaScript. Having been designed for the development of large applications, it is now being widely incorporated in cutting-edge projects such as Angular 2. Adopting TypeScript results in more robust software - software that is more scalable and performant. It's scale and performance that lies at the heart of every project that features in this book. The lessons learned throughout this book will arm you with everything you need to build some truly amazing projects. You'll build a complete single page app with Angular 2, create a neat mobile app using NativeScript, and even build a Pac Man game with TypeScript. As if fun wasn't enough, you'll also find out how to migrate your legacy codebase from JavaScript to TypeScript. This book isn't just for developers who want to learn - it's for developers who want to develop. So dive in and get started on these TypeScript projects.
Table of Contents (16 chapters)
TypeScript Blueprints
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Using the Flux architecture


In React, every class component can have a state. Maintaining a state is a side effect and not pure, so we will not use that in this application. Instead, we will use Stateless Functional Components, which are pure. We still need to maintain the state of the application. We will use the Flux architecture to do that. With Flux, you need to write a small piece of non-pure, but the other parts of the application can be written pure. The architecture can be divided into these parts:

  • Store: Contains the state of the application

  • View: React components that render the state to HTML

  • Action: A function that can modify the state (example: rename the spreadsheet)

  • Dispatcher: A hub modifies the state by executing an action

Several implementations of Flux exist. We will build our own, so that we can understand the ideas better and we can create an implementation that can be properly typed using TypeScript.

We will implement these parts in the following sections.

Defining the...