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

Adding persistent storage


When the user closes and reopens the app, the user sees an empty list of scans. We can make the list persistent by saving it after a scan and loading it when the app starts. We can use the application-settings module to store the scans. The storage is based on key-value: a value is assigned to a specific key.

Only booleans, numbers, and strings can be stored using this module. An array cannot be stored. Instead, one could store the length under one key (for instance, items-length) and the items under a set of keys (items-0, items-1, ...). An easier approach is to convert the array to a string using JSON.

The list can be saved using the following function:

function save() { 
  applicationSettings.setString("items", JSON.stringify(items)); 
} 

The Date objects are converted to strings by JSON.stringify. Thus, we must convert them back to a Date object manually:

function load() { 
  const data = applicationSettings.getString("items"); 
  if (data...