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 type guards


Sometimes, you must check whether a value is of a certain type. For instance, if you have a value of a class Base, you might want to check if it is of a certain subclass Derived. In JavaScript you would write this with an instanceof check. Since TypeScript is an extension of JavaScript, you can also use instanceof in TypeScript. In other typed languages, like C#, you must then add a type cast, which tells the compiler that a value is of a type, different from what the compiler analyzed. You can also add type casts in two different ways. The old syntax for type casts uses < and >, the new syntax uses the as keyword. You can see them both in the next example:

class Base { 
  a: string; 
} 
class Derived extends Base { 
  b: number; 
} 
const foo: Base; 
if (foo instanceof Derived) { 
  (<Derived> foo).b; 
  (foo as Derived).b; 
} 

When you use a type guard, you say to the compiler: trust me, this value will...