Web Development


Understanding TypeScript - 2021 Edition

Don't limit the Usage of TypeScript to Angular! Learn the Basics, its Features, Workflows and how to use it!

4.68 (18879 reviews)



15 hours


Nov 2020

Last Update
Regular Price

What you will learn

Use TypeScript and its Features like Types, ES6 Support, Classes, Modules, Interfaces and much more in any of their Projects

Understand what TypeScript really is about and how it works

Why TypeScript offers a real advantage over vanilla JavaScript

Learn TypeScript both in theory as well as applied to real use-cases and projects

Learn how to combine TypeScript with ReactJS or NodeJS / Express


This course was completely updated, reflects the latest version of TypeScript and incorporated tons of student feedback.


Most People know TypeScript from Angular 2+. It's the Language you have to use there, right?

It's more than that! 

Learn what TypeScript is, why it really is a powerful Addition to JavaScript, what its Features are and how to use it! And whilst doing so, also understand what you're actually doing in your Angular 2+ Code.

This Course takes you from the very Basics and its most important Feature (Types!) to the Point where you're able to use TypeScript in any of your Projects. ReactJS Projects included!

As TypeScript is developed by Microsoft and strongly advertised used by Angular 2+ (Google), it's here to stay

Gain an Edge today and be amongst the First to really understand TypeScript!

A Journey into the Future

As TypeScript code can be compiled to ES5, you'll be amazed by the many next-gen Features you can start using Today. Be it ES6 Features like Destructuring or Arrow Functions, Decorators, Generics and Interfaces or Modules - TypeScript has them all!

In this Course, we'll not stop after the Basics. You will learn about more advanced Features and also how to set up Workflows with  TypeScript. This includes a TypeScript-only Workflow as well as a Webpack Workflow.

You'll also learn that you're not limited to Angular 2+ or plain JavaScript/ TypeScript Projects. A complete Module covers how to use TypeScript with ReactJS to benefit from its Features, there, too.

Practice what you Learn

Watching Videos is a great Way to Learn. And to a lot of Students, it's the best Way. If you also want to practice the Things you learn, this Course offers you Exercises (and Solutions) in many of the Course Modules.

So much Content!

I'm not a Fan of these Courses which teach you the Basics and then leave you alone. In this Course you'll get insights into:

  • Types and how to use them

  • How the TypeScript Compiler works

  • ES6 Features in TypeScript

  • Classes in TypeScript

  • Namespaces and Modules

  • Interfaces

  • Generics

  • Decorators

  • How to integrate Third-Party JavaScript Libraries into your TypeScript Project

  • How to set up a TypeScript project with Webpack

  • Or how to set up a plain-TypeScript Workflow

  • How to use TypeScript together with ReactJS

  • How to use TypeScript together with Node/ Express

  • Real projects and use-cases!


Understanding TypeScript - 2021 Edition
Understanding TypeScript - 2021 Edition
Understanding TypeScript - 2021 Edition
Understanding TypeScript - 2021 Edition


Getting Started

Welcome to the Course!

What Is TypeScript & Why Should You Use It?

Installing & Using TypeScript

TypeScript Advantages - Overview

Course Outline

How To Get The Most Out Of The Course

Setting Up A Code Editor / IDE

The Course Project Setup

TypeScript Basics & Basic Types

Module Introduction

Using Types

TypeScript Types vs JavaScript Types

Important: Type Casing

Working with Numbers, Strings & Booleans

Type Assignment & Type Inference

Understanding Types

Object Types

Nested Objects & Types

Arrays Types

Working with Tuples

Working with Enums

The "any" Type

Union Types

Literal Types

Type Aliases / Custom Types

Type Aliases & Object Types

Core Types & Concepts

Function Return Types & "void"

Functions as Types

Function Types & Callbacks

Functions & Types

The "unknown" Type

The "never" Type

Wrap Up

Useful Resources & Links

The TypeScript Compiler (and its Configuration)

Module Introduction

Using "Watch Mode"

Compiling the Entire Project / Multiple Files

Including & Excluding Files

Setting a Compilation Target

Understanding TypeScript Core Libs

More Configuration & Compilation Options

Working with Source Maps

rootDir and outDir

Stop Emitting Files on Compilation Errors

Strict Compilation

Code Quality Options

Debugging with Visual Studio Code

Wrap Up

Useful Resources & Links

Next-generation JavaScript & TypeScript

Module Introduction

"let" and "const"

Arrow Functions

Default Function Parameters

The Spread Operator (...)

Rest Parameters

Array & Object Destructuring

How Code Gets Compiled & Wrap Up

Useful Resources & Links

Classes & Interfaces

Module Introduction

What are Classes?

Creating a First Class

Compiling to JavaScript

Constructor Functions & The "this" Keyword

"private" and "public" Access Modifiers

Shorthand Initialization

"readonly" Properties

Class Basics


Overriding Properties & The "protected" Modifier

Getters & Setters

Static Methods & Properties

Abstract Classes

Singletons & Private Constructors

Classes - A Summary


A First Interface

Using Interfaces with Classes

Why Interfaces?

Readonly Interface Properties

Extending Interfaces

Interfaces as Function Types

Optional Parameters & Properties

Compiling Interfaces to JavaScript


Wrap Up

Useful Resources & Links

Advanced Types

Module Introduction

Intersection Types

More on Type Guards

Discriminated Unions

Type Casting

Index Properties

Function Overloads

Optional Chaining

Nullish Coalescing

Advanced Types

Wrap Up

Useful Resources & Links


Module Introduction

Built-in Generics & What are Generics?

Creating a Generic Function

Working with Constraints

Another Generic Function

The "keyof" Constraint

Generic Classes

A First Summary

Generic Utility Types

Generic Types vs Union Types


Useful Resources & Links


Module Introduction

A First Class Decorator

Working with Decorator Factories

Building More Useful Decorators

Adding Multiple Decorators

Diving into Property Decorators

Accessor & Parameter Decorators

When Do Decorators Execute?

Returning (and changing) a Class in a Class Decorator

Other Decorator Return Types

Example: Creating an "Autobind" Decorator

Validation with Decorators - First Steps

Validation with Decorators - Finished

Fixing a Validator Bug

Wrap Up

Useful Resources & Links

Practice Time! Let's build a Drag & Drop Project

Module Introduction

Getting Started

DOM Element Selection & OOP Rendering

Interacting with DOM Elements

Creating & Using an "Autobind" Decorator

Fetching User Input

Creating a Re-Usable Validation Functionality

Rendering Project Lists

Managing Application State with Singletons

More Classes & Custom Types

Filtering Projects with Enums

Adding Inheritance & Generics

Rendering Project Items with a Class

Using a Getter

Utilizing Interfaces to Implement Drag & Drop

Drag Events & Reflecting the Current State in the UI

Adding a Droppable Area

Finishing Drag & Drop

Wrap Up

Useful Resources & Links

Modules & Namespaces

Module Introduction

Writing Module Code - Your Options

Working with Namespaces

Organizing Files & Folders

A Problem with Namespace Imports

Important: Use Chrome or Firefox

Using ES Modules

Understanding various Import & Export Syntaxes

How Does Code In Modules Execute?

Wrap Up

Useful Resources & Links

Using Webpack with TypeScript

Module Introduction

What is Webpack & Why do we need it?

Installing Webpack & Important Dependencies

Adding Entry & Output Configuration

Adding TypeScript Support with the ts-loader Package

Finishing the Setup & Adding webpack-dev-server

Adding a Production Workflow

Wrap Up

Useful Resources & Links

3rd Party Libraries & TypeScript

Module Introduction

Using JavaScript (!) Libraries with TypeScript

Using "declare" as a "Last Resort"

No Types Needed: class-transformer

TypeScript-embracing: class-validator

Wrap Up

Useful Resources & Links

Time to Practice! Let's build a "Select & Share a Place" App (incl. Google Maps)

Module Introduction

Project Setup

Getting User Input

Setting Up a Google API Key

Using Axios to Fetch Coordinates for an Entered Address

Rendering a Map with Google Maps (incl. Types!)

Working with Maps without a Credit Card

Useful Resources & Links

React.js & TypeScript

Module Introduction

Setting Up a React + TypeScript Project

How Do React + TypeScript Work Together?

Working with Props and Types for Props

Getting User Input with "refs"

Cross-Component Communication

Working with State & Types

Managing State Better

More Props & State Work

Adding Styling

Types for other React Features (e.g. Redux or Routing)

Wrap Up

Useful Resources & Links

Node.js + Express & TypeScript

Module Introduction

Executing TypeScript Code with Node.js

Setting up a Project

Finished Setup & Working with Types (in Node + Express Apps)

Adding Middleware & Types

Working with Controllers & Parsing Request Bodies

More CRUD Operations

Wrap Up

Useful Resources & Links

Course Roundup


[LEGACY] Getting Started

What does [LEGACY] mean?

Course Introduction

What is TypeScript?

Join our Online Learning Community

Why TypeScript and How to use it?

Installing TypeScript

Using TypeScript

Setting up the Course Workspace

Asking Questions & Course Materials

[LEGACY] Using Types for a better Code


Type Basics

Numbers & Booleans

Assigning Types Explicitly

Arrays and Types



The "Any" Type

Understanding the created JavaScript Code

Using Types in Functions (Arguments & Return Values)

Functions as Types

Objects and Types

Example: Putting it all together in a Complex Object

Creating custom Types with Type Aliases

Allowing multiple Types with Union Types

Checking for Types during Runtime

The "never" Type (added with TypeScript 2.0)

Nullable Types (added with TypeScript 2.0)

Module Exercise: Problem

Module Exercise: Problem Code

Module Exercise: Solution

Module Summary

[LEGACY] Understanding the TypeScript Compiler


How Code gets Compiled

Changing the Compiler Behavior on Errors

Debugging your TypeScript Code using Source Maps

Avoiding implicit "Any"

More Compiler Options

Compiler Improvements with TypeScript 2.0

Resource: Compiler Documentation

Module Summary

[LEGACY] TypeScript and ES6


ES6 & TypeScript Compatibility

"Let" and "Const"

Block Scope

Arrow Functions

Arrow Functions - Variations

Functions and Default Parameters

The Spread Operator

The Rest Operator

Rest Parameters & Tuples

Destructuring Arrays

Destructuring Objects

Template Literals

Other ES6 Features

Module Exercise: Problem

Module Exercise: Solution

Module Summary

[LEGACY] Using Classes to create Objects


Creating Classes and Class Properties

Class Methods and Access Modifiers


Inheritance and Constructors

Inheritance Wrap Up

Getters & Setters

Static Properties and Methods

Abstract Classes

Private Constructors & Singletons (added with TypeScript 2.0)

"readonly" Properties (added with TypeScript 2.0)

Module Exercise: Problem

Module Exercise: Solution

Module Summary

[LEGACY] Namespaces and Modules


An Introduction to Namespaces

Namespaces and Multiple Files

Namespace Imports

More on Namespaces

Limitations of Namespaces


Use SystemJS 0.x

Loading Modules

Importing & Exporting Modules

Module Resolution

Namespaces vs Modules - Wrap Up

Module Summary

[LEGACY] Doing Contract Work with Interfaces


The Basics about Interfaces

Interfaces and Properties

Interfaces and Methods

Using Interfaces with Classes

Interfaces and Function Types

Interface Inheritance

What happens once Interfaces get Compiled

Module Summary

[LEGACY] Generics


Why and What?

Creating a Generic Function

A built-in Generic Type: Arrays

Generic Types and Arrays

Using Generic Types

Creating a Generic Class


Using more than one Generic type

Module Exercise: Problem

Module Exercise: Solution

Module Summary

[LEGACY] Behind the Scenes with Decorators


Creating a Class Decorator

Decorator Factories

Creating a useful Decorator

Using Multiple Decorators

A first Summary

Method Decorators

Property Decorators

Parameter Decorators

Module Summary

[LEGACY] Using JavaScript Libraries (like jQuery) with TypeScript


Using jQuery

Declaring Variables

Understanding Declaration Files

Using Public Type Definitions

Wrap Up

Using the [LEGACY] Content

[LEGACY] Introduction

[LEGACY] Installing a Third-Party Library

[LEGACY] Importing the Library

[LEGACY] Translating JavaScript to TypeScript with TypeScript Definition Files

[LEGACY] Option 1: Manually download TypeScript Definition Files

[LEGACY]Option 2: Managing TypeScript Defintion Files with the "typings" Package

[LEGACY] Easier Type Management with TypeScript 2.0

[LEGACY] Module Summary

[LEGACY] TypeScript Workflows


Using "tsc" and the tsconfig File

How TypeScript resolves Files using the tsconfig.json File

More on "tsc" and the tsconfig File

Adding TypeScript into a Gulp Workflow

Working with Webpack 4+

Adding TypeScript into a Webpack Workflow

Module Summary

[LEGACY] Example: Using TypeScript together with ReactJS


Project Setup

Using PropTypes

Types & Class Components

Wrap Up

Using the [LEGACY] Content

[LEGACY] Introduction

[LEGACY] Setting up the Project & Adding React Packages

[LEGACY] Adding the ReactJS TypeScript Definition Files

[LEGACY] Installing Webpack

[LEGACY] Configuring Webpack

[LEGACY] Creating ReactJS Code - with TypeScript

[LEGACY] Configuring the TypeScript Compiler to work with ReactJS

[LEGACY] Using TypeScript 2.0 Type Management

[LEGACY] Module Summary

[LEGACY] After finishing this Course

Course Roundup

Further Resources

Bonus: More Content!


dialexa8 October 2020

Max is always fantastic at explaining new topics. It starts a little more "simple" than I'd like, since I've already got a strong understanding of working with files structures and such, but it never hurts to go back over the basics!

Салтыков7 October 2020

Грамотный преподаватель, приятно слушать. Курс понравился, начал внедрять в React-приложении, нужно конечно немного пошаманить, но работает хорошо, не понимаю, как я раньше жил без строгой типизации, очень полезно. В курсе есть все основы, необходимые для понимания и написания типизированного кода на TypeScript, лекции не длинные, есть тесты на понимание лекций. Тема джейнериков затронута простыми примерами, для более сложных - нужно изучать самостоятельно, тем не менее, понимание дает. Перегрузка функций/методов практически не затрагивалась в рамках курса. В любом случае, отличный и грамотно построенный курс, советую к изучению. В конце немного про использование совместно с React. Спасибо Max!

Devin4 October 2020

I can listen at 2x speed faster than I can learn while reading. It's also great for JS programmers, emphasizing how ts object types are not actual JS objects :)

Ra3 October 2020

Lots of interesting info i coudnt find on youtube but React badly covered and nothing about Redux at all

Felipe23 September 2020

I traying to learn English at the same time with codes, I don't understand both. I like the new technologies and typescript its super amazing

Arlinda27 February 2020

I almost finished the first 2 sections and I am amazed by the structure of the presentations. I am a QA who is moving to a new company where people write typescript and I wanted to learn typescript. This lesson is the best. I want to thank the creator from my heart!

Ihsan25 February 2020

You re adding index.html and using-ts files to an project, but if you dont know how you start the project( open index.html command) you couldnt start the project... you can explained it.

Rodrigo23 February 2020

Excelente curso para aprender TypeScript, actualizado, completo y bien explicado con ejercicios precisos.

Jonathan20 February 2020

well, im almost through the JavaScript & Angular 8 (soon to be 9 ? ) courses as well as others. and thought that typescript might be a nice addition to 'complete the series' - so that i know what i'm doing in angular (now that i know my way around vanilla javascript)

David17 February 2020

I really enjoyed this course, and at almost all times was coding just in front of the instructor and only needed to play through when I got stuck or unsure of how to do it. This has built on my knowledge of typescript and added bonus knowledge of some core javascript features as well which I had never used before. I feel confident that most of the knowledge here will be retained.

Eggerschwyler16 February 2020

Very detailed course, comming from Angular I didn't know about certain concepts of typescript, so I like it.

l15 February 2020

As usual, I'm very please with the courses Max puts out. He's to the point, and he covers details one might be interested in. I find he makes very useful suggestions and goes out of his way to provide different ways of using the skills he's teaching.

Vasilis9 February 2020

This was the first online course I have ever taken. At the beginning I did not know what to expect or how the lecturing would be done. I was glad to find out that throughout the whole course there were countess examples and everything that was taught was implemented in one way or another into code. I also have to congratulate Max since he was a great teacher and the way he modeled the course was very good for learning. All in all this is a great course if you care to learn Typescript. I am not leaving a perfect 5 star rating because at one point in the course he used async functions and it peaked my interest, however he did not elaborate further. Since I do not have any Javascript background I think it would be nice if there were one or two modules where the async functionality is explained. In conclusion, I am really pleased with this course and I feel like I have actually gotten the grasp of Typescript and could actually use it in projects. I would definitely recommend this course to someone who is interested in learning Typescript.

Boban9 February 2020

I actually just started with the course and already learnt so much. I was already somewhat familiar with TS, and knew how to work with it a little bit. He is a great teacher, and explains so much. I would recommend this course so far 10/10.

MidnightCitizen7 February 2020

I was looking for a good course about Typescript and so far, so good. Great explanation about Typescript, I will start using it in my personal projects


Expired7/19/201989% OFF
Expired12/17/202094% OFF


Udemy ID


Course created date


Course Indexed date
Course Submitted by

Android PlayStore
Apple Appstore