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

Creating the models


In lib/game/model.ts, we will create the models for the game. These models will contain the state of the game, such as the location of the enemies, walls, and dots. The state must also contain the current movement of the player and the difficulty level, as the game will have multiple difficulties.

Using enums

We start with several enums. We can store the difficulty with such an enum:

export enum Difficulty { 
  Easy, 
  Hard, 
  Extreme 
} 

The values of an enum are converted to numbers during compilation. TypeScript gives the first element zero as the value, the next item one, and so on. In this example, Easy is 0, Hard is 1, and Extreme is 2. However, you can also provide other values. For some applications, this can be useful. We will use custom values to define Movement. This enum contains the four directions in which the player can move. In case the user does not move, we use None. We give the members a value:

export enum Movement { 
  None...