← back to coursesProfessional TypeScript

Welcome to Professional TypeScript

Supercharge your JavaScript knowledge. Learn the beauty of TypeScript, and how you can apply it to real world code without thinking that its magic ✨

#typescript
#javascript

Why TypeScript

Nowadays its pretty hard to find a new job working with JavaScript if you don't have a basic understanding of TypeScript. Beyond that, TypeScript is now powerful enough to be a programming language in its own right (independent of JavaScript). This course is designed to teach you modern TypeScript from the beginning so you can use it effectively in your day to day.

But we don't stop there, we cover lots of advanced TypeScript concepts, without slowing you down, so you can quickly get up to speed, and continue to use this as a reference well into your career.

Learning Objectives

  • Effectively use TypeScript at your day to day job
  • Learn the basics on TypeScript
  • Master advanced TypeScript concepts to use it as a type programming language
  • Real world use cases of various TypeScript features
  • Stay up to date with modern TypeScript concepts

Prerequisites

Basic knowledge of computers and some beginner level programming knowledge. Knowledge of JavaScript will be extremely helpful but don't worry, you can view our JavaScript course to brush up (and probably learn new things).

javascript

Why This Course

If you are looking to master TypeScript, this course is for you. This course will quickly get you up to speed to use it effectively at your workplace and even impress your colleagues 😉.

I'm a Microsoft MVP (Most Valuable Professional) for JavaScript / TypeScript, thanks to my teaching contributions in the form of books, various videos and answers on StackOverflow.

I've been teaching TypeScript for a long time, writing and reviewing various books, making video courses. I use that knowledge to share those experiences with you. Unlike some other creators, you will not find mixed messages (flavour of the day) here. You get clear answers, informed with years of research and exposure.

You will go from the basic annotations, for example : string:

let value: string = "let's go!"

To all the way to using TypeScript as a type programming language. As an example, when you are done with this course the following piece of code will feel simple :

export type ReadOnly<T> = { readonly [P in keyof T]: T[P]; }

A lot of effort has gone into this course to make sure you get all the knowledge you need as quickly as possible. No time wasting here. You will learn quickly and be on your way, building great things 🎄

LESSONS

Introduction

Introduction

(⏱️ 1:54)

Setup

Setup

(⏱️ 5:44)

Primitive Types

Primitive Types

(⏱️ 1:42)

Instance Types

Instance Types

(⏱️ 1:52)

Arrays And Tuples

Arrays And Tuples

(⏱️ 1:38)

Objects

Objects

(⏱️ 1:33)

const declarations

const declarations

(⏱️ 1:03)

Function Types

Function Types

(⏱️ 1:57)

Structural Typing

Structural Typing

(⏱️ 2:10)

Classes in TypeScript

Classes in TypeScript

(⏱️ 1:48)

Target Compiler Option

Target Compiler Option

(⏱️ 2:37)

Generics

Generics

(⏱️ 3:02)

Special Types any And unknown

Special Types any And unknown

(⏱️ 2:00)

JavaScript to TypeScript

JavaScript to TypeScript

(⏱️ 1:32)

Frontend Projects

Frontend Projects

(⏱️ 3:49)

Type Assertions

Type Assertions

(⏱️ 2:15)

Type Casting

Type Casting

(⏱️ 1:16)

Modules

Modules

(⏱️ 1:55)

Type Declarations

Type Declarations

(⏱️ 4:25)

Creating NPM packages

Creating NPM packages

(⏱️ 3:20)

Async Await

Async Await

(⏱️ 3:05)

Running in NodeJS

Running in NodeJS

(⏱️ 1:40)

Lexical this

Lexical this

(⏱️ 2:34)

readonly Modifier

readonly Modifier

(⏱️ 1:59)

Union Types

Union Types

(⏱️ 2:57)

Literal Types

Literal Types

(⏱️ 2:58)

Type Narrowing

Type Narrowing

(⏱️ 4:19)

Discriminated Unions

Discriminated Unions

(⏱️ 3:29)

Class Parameter Properties

Class Parameter Properties

(⏱️ 1:02)

Strict Compiler Option

Strict Compiler Option

(⏱️ 6:18)

null vs undefined

null vs undefined

(⏱️ 4:19)

Intersection Types

Intersection Types

(⏱️ 2:03)

Optional Modifier

Optional Modifier

(⏱️ 2:47)

Non Null Assertion Operator

Non Null Assertion Operator

(⏱️ 3:40)

Interfaces

Interfaces

(⏱️ 2:28)

Interface Declaration Merging

Interface Declaration Merging

(⏱️ 1:01)

Types vs Interfaces

Types vs Interfaces

(⏱️ 2:16)

never Type

never Type

(⏱️ 3:00)

implements Keyword

implements Keyword

(⏱️ 1:25)

Definite Assignment Assertion

Definite Assignment Assertion

(⏱️ 2:31)

User Defined Type Guards

User Defined Type Guards

(⏱️ 2:02)

Assertion Functions

Assertion Functions

(⏱️ 3:42)

Function Overloading

Function Overloading

(⏱️ 4:15)

Call Signatures

Call Signatures

(⏱️ 2:53)

Abstract Classes

Abstract Classes

(⏱️ 1:53)

Index Signatures

Index Signatures

(⏱️ 3:08)

Readonly Arrays and Tuples

Readonly Arrays and Tuples

(⏱️ 2:58)

Double Assertions

Double Assertions

(⏱️ 2:20)

const Assertions

const Assertions

(⏱️ 3:55)

this Parameter

this Parameter

(⏱️ 2:33)

Generic Constraints

Generic Constraints

(⏱️ 2:43)

Dealing With Temporal Uncertainty

Dealing With Temporal Uncertainty

(⏱️ 2:58)

typeof Type Operator

typeof Type Operator

(⏱️ 2:12)

Lookup Types

Lookup Types

(⏱️ 3:12)

keyof Type Operator

keyof Type Operator

(⏱️ 3:55)

Conditional Types

Conditional Types

(⏱️ 4:39)

Contitional Types with Unions and never

Contitional Types with Unions and never

(⏱️ 3:32)

infer Keyword and `ReturnType<T>`

infer Keyword and `ReturnType<T>`

(⏱️ 3:47)

Mapped Types

Mapped Types

(⏱️ 2:48)

Mapped Type Modifiers

Mapped Type Modifiers

(⏱️ 3:37)

Template Literal Type

Template Literal Type

(⏱️ 4:28)

Partial<T>

Partial<T>

(⏱️ 1:27)

Required<T>

Required<T>

(⏱️ 1:36)

Readonly<T>

Readonly<T>

(⏱️ 1:34)

Record<K, T>

Record<K, T>

(⏱️ 4:05)

Project References

Project References

(⏱️ 4:18)

undefined vs. optional

undefined vs. optional

(⏱️ 2:48)

satisfies Operator

satisfies Operator

(⏱️ 2:42)

PropertyKey Type

PropertyKey Type

(⏱️ 0:57)

ThisType<T>

ThisType<T>

(⏱️ 4:11)

Awaited<T>

Awaited<T>

(⏱️ 4:12)

String Manipulation Types

String Manipulation Types

(⏱️ 3:36)

Mapped Types as Clauses

Mapped Types as Clauses

(⏱️ 4:01)

Union vs Intersection Mental Model

Union vs Intersection Mental Model

(⏱️ 3:36)

Enums are Bad

Enums are Bad

(⏱️ 8:11)