The purpose of this book is to share my steps to setup a web project with React and TypeScript. I have ran through many demos, tutorials, and videos on React and TypeScript separately. Yet, finding up to date info on writing React apps with TypeScript was hard to do at the time I wrote this.

When I started this book my main focus was on sharing my experience in establishing a development environment and dealing with some of the quirks with coding React apps with TypeScript. I thought that I wouldn't explore many of the concepts in React or TypeScript, but as I learned more I decided to write about them. The book won't provide a deep inspection of all things React or TypeScript, but I will go deeper than just a simple Hello World.

This book will hone in on possible integrations of the two in terms of a development environment, coding paradigms and style. The scope is small and this should not be taken as a best practices guide. This is just my personal practice and there are many ways to do this kind of development. I just hope that this can equip you to explore more practices for your particular set of problems that can be solved with React and TypeScript.


This is a very simple book, but it is probably most useful if you understand JavaScript.


We will start by jumping into some code samples with the proverbial Hello World. We will do a few examples where we start with a very basic display the text "Hello World" and add new features to demonstrate the basics of React with TypeScript.

Next, we break down the automation used in the sample. We review IDEs, package management, build, transpiling... and more.

Then we review some interesting concepts in React and TypeScript.

Programming Language

This book will use ECMAScript 2015 (ES6). React and TypeScript discussions and source code will be expressed in ES6 and above.

Code Samples and Examples

You can find the code samples and examples from the book on GitHub -

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 4.0 Unported License.