Introduction
  • Typescript Helicopter View - Learn Main Features in a Few Minutes
  • Flash Introduction and Course Goals
  • The Typescript Jumpstart Ebook
  • Setup your Workstation - Install Node, Git and Npm
  • Where To Find The Lessons Code - Alternative IDE
  • Installing The Lessons Code
  • Setup Webstorm and the Typescript Compiler
  • Create A Node Project From an Empty Folder
  • Write Your First Typescript Program
  • Top 4 Typescript Advantages
Typescript as a Better Javascript: Learn ES6 Features and Why they are Useful
  • Setting Up a Development Server - Run TheTypescript Output in the Browser
  • Let vs Const vs Var - When to Use Each, Why - About Immutability
  • Jumping to be the Beginning of a Section of the Course
  • ES6 Arrow Function Operator - When to Use Each and Why ?
  • ES6 String Interpolation - When to Use Template Literals ?
  • ES6 Object Destructuring, Shorthand Object Creation and How They Are Related
  • ES6 Array Spread Operator and Function Default Parameters
  • ES6 Rest Operator and How it relates to the Array Spread operator
  • ES6 Modules - Why are Modules Needed ? A missing feature in Javascript
  • ES6 Modules Import/ Export Under The Hood - What is the relation with CommonJs ?
  • ES6 Modules in Action - Using SystemJs Module Loader to load CommonJs Modules
The Typescript 2 Type System
  • Why the name Typescript ?
  • Primitive Types and Type Inference In Action - string, number and boolean
  • Object Types and Type Definition - Building Complex Types
  • What is a Function Type ? Function Types and Interfaces - Are They Related ?
  • Arrays Strong Typings and Tuples - Is there a relation ?
  • Typescript Enums - What do They Look at Runtime ?
  • Typescript 2 Nullable Types - Avoiding null and undefined Bugs
  • Typescript Control Flow Analisys In Action
  • Typescript Interfaces vs Aliases Union & Intersection Types
  • The Any Type - It Does Not Do What You Might Think It Does
  • Understanding Implicit Any
  • Typescript 3rd Party Libraries - See Typescript 2 @Types In Action
  • Create a Custom Type Definition
  • Type Definitions and Modules
  • The Never And Void Types
  • Type Compatibility - When is a Type Compatible With Another ?
Debugging Typescript
  • Debugging Typescript - Both in the Browser and in Node
Building an HTTP REST API Using Express and Sequelize
  • Introduction and Goals of the Section
  • Instructions for Setting Up the Postgresql Database
  • Setting Up a Postgresql Development Database
  • How to Run Our Server Using ts-node
  • Installing the Sequelize ORM Step By Step
  • The first Sequelize query Up and Running
  • Setting Up the Persistence Layer of Our REST API
  • Structuring the Persistence Layer
  • Installing Express and its Type Definitions, Setup a Server
  • Writing Out First HTTP GET Express Route - Return a List of Courses !
  • Setting Up Node Hot Reloading with Nodemon
  • Structuring the REST API Layer
  • Understand Express Middlewares and How They Relate to Error Handling
  • Creating an Express Global Error Handler - It Won't Work as we Expect !
  • How to Prevent Hanging HTTP Requests in Express
  • You Have Been Doing Functional Programming ! Partially Applied Functions
  • Creating a Reusable Success Handler
  • Setting Up the Get Course Detail REST API Resource
  • Defining a One To Many Relationship in Sequelize
  • Write a Join Query In Sequelize
  • Initial Implementation of a REST POST Call
  • Debugging The Node REST API Using Webstorm
  • Generating Human Readable Error Ocurrence Identifiers
  • Creating a Database Error Handling Function
  • Installing the Express Body Parser Middleware
  • Updating a Lesson via an HTTP PATCH API call
  • Deleting a Lesson via an HTTP DELETE API Call
Object Oriented Programming
  • Introduction and Goals of the Section
  • Classes, Constructors and Abbreviated Class Properties Definition
  • Class Properties Public, Private and Read Only Modifiers
  • Class Methods, Private Methods
  • Class Inheritance
  • Private vs Protected and Method Overrides
  • Abstract Classes
  • Class Getters and Setters
  • Static Methods, Variables and Constants
  • Interfaces - Not Only an OO Concept
Generics
  • Generic Functions, Type Inference and Generics
  • Generic Classes
  • Generic Type Restrictions
Decorators
  • Introduction and Goals of the Section
  • introduction to Decorators: An Example
  • Understanding Decorator Factories
  • Initial Implementation of a Logging Decorator
  • Logging Decorator Implementation Finished - Fixed the Issue With This
  • Understanding the emitDecoratorMetadata compiler flag
  • Class Decorators
  • Property Decorators
Improving Type Safety - Adding Custom Types to the REST API
  • Introduction and Goals of the Section
  • Creating Custom Types, Discussion on Immutability
  • Improving the Model of Our Application - Split Into Summary and Detail Types
  • Using Custom Types In Our Application
  • Installing Promise Type Definitions Using the lib Built-In Types