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

More accurate type guards


Before TypeScript 2.0, the compiler did not use the control flow of the program for type guards. The easiest way to see what that means, is by an example:

function f(x: string | number) { 
  if (typeof x === "string") { 
    return; 
  } 
  x; 
} 

The type guard narrows x to string in the block after the if statement. If the else block existed, it would have narrowed x to number there. Outside of the if statement, no narrowing happens, because the compiler only looks at the structure or shape of the program. That means that the type of x on the last line would be string | number, even though that line can only be executed if the condition of the if statement is false and x can only be a number there. With some terminology, type guards were only syntax directed and were only based on the syntax, not on the control flow of the program.

As of TypeScript 2.0, the compiler can follow the control flow of the program. This gives more accurate...