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 HTML5 canvas


The HTML5 canvas is an HTML element, just like <div>. However, the canvas does not contain other HTML elements, but it can contain a drawing generated by JavaScript code. In lib/game/index.ts we will quickly experiment with it.

We can get a reference to the canvas using document.getElementById the same way we got a reference to a <div> element:

const canvas = <HTMLCanvasElement> document.getElementById("game"); 

We cannot directly draw on the canvas; we have to get a rendering context first. Currently, two kinds of rendering contexts exist: a two dimensional context and a webgl context, used for 3D rendering. The webgl context is a lot harder to use. Luckily, Pac Man is 2D, so we can use the 2D context:

const context = canvas.getContext("2d"); 

In an editor with completions, you can check which functions exist on the context. For instance, you can use context.fillRect(10, 10, 100, 100) to draw a filled rectangle from 10,10 to 110,110. The x...