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

Migrating each file


When the build system is set up, you can start with migrating files. It is easiest to start with files that do not depend on other files, as these do not depend on types of other files. To migrate a file, you must rename the file extension to .ts, convert the module format to ES modules, correct types that are inferred incorrectly, and add types to untyped entities. In the next sections, we will take a look at these tasks.

Converting to ES modules

In TypeScript files you cannot use CommonJS or AMD directly. Instead you must use ES modules, like we did in the previous chapters. For an import, you must choose from these:

  • import * as name from "package", imports the whole package, similar to var name = require("package") in CommonJS.

  • import name from "package", imports the default export, similar to var name = require("package").default.

  • import { name } from "package", imports a named export, similar to var name = require("package").name.

ES modules offer various constructs...