Book Image

Learn TypeScript 3 by Building Web Applications

By : Sebastien Dubois, Alexis Georges
Book Image

Learn TypeScript 3 by Building Web Applications

By: Sebastien Dubois, Alexis Georges

Overview of this book

TypeScript is a superset of the JavaScript programming language, giving developers a tool to help them write faster, cleaner JavaScript. With the help of its powerful static type system and other powerful tools and techniques it allows developers to write modern JavaScript applications. This book is a practical guide to learn the TypeScript programming language. It covers from the very basics to the more advanced concepts, while explaining many design patterns, techniques, frameworks, libraries and tools along the way. You will also learn a ton about modern web frameworks like Angular, Vue.js and React, and you will build cool web applications using those. This book also covers modern front-end development tooling such as Node.js, npm, yarn, Webpack, Parcel, Jest, and many others. Throughout the book, you will also discover and make use of the most recent additions of the language introduced by TypeScript 3 such as new types enforcing explicit checks, flexible and scalable ways of project structuring, and many more breaking changes. By the end of this book, you will be ready to use TypeScript in your own projects and will also have a concrete view of the current frontend software development landscape.
Table of Contents (15 chapters)

Implementing the domain model

First of all, do the following:

  1. Create a domain folder inside src. We'll put all of our domain-related modules inside of it.
  2. Now, go ahead and create a country.ts file within the src/domain folder.

In that file, define the Country class:

export class Country { 
    constructor( 
        private _name: string, 
        private _id: string, 
        private _iso2Code: string, 
        private _capitalCity: string, 
        private _longitude: string, 
        private _latitude: string 
    ) { 
    } 
} 

Inside the class, add the following accessors:

    get name() { 
        return this._name; 
    }
    get id(): string { 
        return this._id; 
    } 
    get iso2Code(): string { 
        return this._iso2Code; 
    } 
    get capitalCity(): string { 
        return this._capitalCity; 
    } 
    get longitude(): string { 
        return...