Course Overview
This isn’t just another TypeScript course—it’s the most up-to-date, comprehensive course available, fully updated in 2025 to align with the latest version of TypeScript and the most modern development practices.
And yes, I’ll teach you TypeScript from scratch! Whether you’re a beginner or an experienced JavaScript developer, this course covers everything you need to master TypeScript.
You'll learn all the essential concepts, including:
Type Declarations & Inference – Understand how TypeScript manages types dynamically
Interfaces & Type Aliases – Create structured, reusable code with confidence.
Classes & Object-Oriented Programming (OOP) – Master encapsulation, inheritance, and polymorphism in TypeScript.
Decorators (Stage 2 & Stage 3) – Implement powerful meta-programming techniques in your projects.
Generics – Write scalable, reusable functions and components.
Mapped & Conditional Types – Take type safety to the next level.
Modules & Namespaces – Organize and structure your code efficiently.
TypeScript Compiler (tsc) & Configuration – Learn how TypeScript compiles into JavaScript and how to configure it for different environments.
Advanced TypeScript Features – Utility types, infer keyword, keyof operator, and template literal types.
The Inner Workings of TypeScript – Go under the hood to understand how TypeScript interprets and enforces type safety.
And Lots More (See Curriculm for extensive list)
This course isn’t just about learning TypeScript in isolation. You’ll also apply it to build real-world applications using the latest tools and frameworks:
Frontend Development – Use TypeScript with React, ShadcnUI, TailwindCSS, and TanStack Query.
Backend Development – Build a robust Node.js API with Express, Mongoose, and MongoDB using TypeScript
By the end of this course, you’ll have mastered TypeScript in its entirety, gaining the skills to write scalable, high-performance applications that follow industry best practices.
This course contains 300+ Videos which in total contain more than 25 hours of content. I teach you the latest features of TypeScript in a very practical manner providing you with the in-depth knowledge you need to master TypeScript.
Once we are through with the theoretical part of the TypeScript and we understand the intrinsics of the language, we set off to build a full stack application. We build a task management application where you can create a new task and set the priority as well as the status of the task. We also build real-time task counters and work on a complete server state synchronization.
While building the front end of this application, you learn how to use TypeScript with React, ShadcnUI and Tanstack Query. And, when we build the REST API with Node as a backend service for the application, we get practical hands-on experience on how to use Typescript in conjunction with NodeJS along with Express, Mongoose, and MongoDB database. If you are a full-stack developer, you can enjoy and build the complete project with me. And of you, skillsets are limited to the backend or front-end. You can choose the module based on your skills as these modules are self-contained and do not have a dependency on each other.
Detailed Breakdown Of Topics Covered In The Course:
What is TypeScript
How TypeScript helps You Write Better Code
Introduction To Types
Different types of types in TypeScript
Primitive types
Object types
Array types
Tuples
Enums
Unions
Intersection types
Custom types
Type inference
Void
Never
Functions in TypeScript
Call signatures
Function overloading
Polymorphic functions
Generics
Classes in TypeScript
Inheritance
Accessors and Mutators
Constructors
Access modifiers
Static members
Abstract classes
Method Overriding
Interfaces
Multiple inheritance with interfaces
TypeScript Compiler and how to modify it for your needs
JavaScript Prototypes and Objects
Prototypical inheritance
Property descriptors
Decorators
Decorator factories
Class decorators
Method decorators
Parameter decorators
Decorators on static members of a class
Property decorators
Multiple decorators and execution sequence
Subtypes and Supertypes
Typecasting
Type widening
Totality
Discriminated unions
Index Accessed types
KeyOff operator
Mapped types
Conditional Types
Type definitions for third-party libraries
Building a full stack application
Application front-end using - TypeScript with React, ShadcnUI, React Query / Tanstack Query.
Application backend REST API using- TypeScript with NodeJS, Mongoose, and MongoDB
Why You Should Learn TypeScript
TypeScript is a strongly typed programming language that builds on JavaScript. TypeScript is a superset of JavaScript and can be used along with JavaScript, allowing slow and steady upgradation. TypeScript has been voted the second most loved programming language in the Stack Overflow 2020 Developer survey.
Since the introduction of NodeJS to the community a decade ago, JavaScript has become the most widely used cross-platform programming language. While the size, scope, and complexity of JavaScript programs have grown exponentially, the JavaScript language's ability to express the relationships between different entities of code has not. The most common errors that programmers make are type errors: a specific type of value was used when a different type of value was expected. This could result from simple typos, a failure to understand a library's API surface, incorrect assumptions about runtime behavior, or other errors. TypeScript's goal is to be a static type checker for JavaScript programs.
Apart from providing type checking and strict types, TypeScript comes with a bunch of features that help you to write Object Oriented Code. These features are specific to TypeScript and do not exist in JavaScript.
Who Should Take This Course?
If you are an existing JavaScript developer and want to up your JavaScript game with TypeScript. This course is a perfect fit for you.
If you already have some basic TypeScript knowledge and want to dive deep into advanced concepts. This course is a perfect fit for you.
If you want to learn how to use TypeScript and existing technologies such as React, ShadcnUI, Tanstack Query, Node.js, Mongoose and MongoDB. This course will help you learn TypeScript in conjunction with these technologies.
Who Should Not Take This Course?
Since TypeScript is a superset of JavaScript, this course is not for you if you have never worked on JavaScript. You do not need to be an expert at JavaScript but should have some basic knowledge of JavaScript to benefit from this course.
Suppose you are a new programmer looking for your first programming language course. Then this course is not for you. Since TypeScript builds up on JavaScript, some prior knowledge of JavaScript programming is needed to be able to take this course.
FAQ
FAQ area empty
Course curriculum
-
Introduction
Xem trước -
What Is TypeScript
Xem trước -
Setup Development Environment
Xem trước -
Setting Up TypeScript Compiler
Xem trước -
How TypeScript Helps You Catch Errors
Xem trước -
Your First TypeScript Program
Xem trước -
Deep Dive into the JavaScript File Generated by TypeScript
Xem trước -
TypeScript Type System
Xem trước
-
Introduction To TypeSystem
Xem trước -
Any Type
Xem trước -
Unknown type
Xem trước -
Type Alias
Xem trước -
Inference, Annotation, Duck Typing and Declaration
Xem trước -
Union Types
Xem trước -
Quick Conditional Types
Xem trước -
Understanding Type Hierarchy
Xem trước -
Type Casting
Xem trước -
★Practice: Type System★
Xem trước -
★ Solution: Type System ★
Xem trước
-
Introduction To Objects
Xem trước -
Working With Objects
Xem trước -
Type Alias For Objects
Xem trước -
Nested Objects
Xem trước -
Index Signatures With Objects
Xem trước -
Optional And Readonly Properties
Xem trước -
Union Types With Objects
Xem trước -
Discriminating Unions
Xem trước -
Intersection Types
Xem trước -
★Practice: Strictly Type an Object★
Xem trước -
★Solution: Strictly Type an Object★
Xem trước
-
Introduction To Arrays And Enums
Xem trước -
Strictly Typing Arrays
Xem trước -
Tuples
Xem trước -
Readonly Arrays and Tuples
Xem trước -
Enums
Xem trước -
Enums are Available At Runtime
Xem trước -
Enums Vs Objects
Xem trước -
Computed Enums
Xem trước -
Enums as Unions and Types
Xem trước -
★Practice: Arrays and Enums★
Xem trước -
★Solution: Arrays and Enums★
Xem trước
-
Declaring Functions
Xem trước -
Default and Optional Parameters
Xem trước -
Custom Parameters And Return Types
Xem trước -
Function Call Signatures
Xem trước -
Anonymous Functions
Xem trước -
Void and never Types
Xem trước -
Async Functions
Xem trước -
Rest Parameters And Arguments
Xem trước -
Parameter Destructuring
Xem trước -
Introduction to Function Overloading
Xem trước -
Function Overloading In TypeScript
Xem trước -
★Practice: Functions in TypeScript★
Xem trước -
★Solution: Functions in TypeScript★
Xem trước
-
What are Generics
Xem trước -
Generic Function Declarations
Xem trước -
Generic and Constraints With Arrays
Xem trước -
Generics With Objects
Xem trước -
Keyof Type Operator
Xem trước -
Generic Default Values
Xem trước -
Implementing A Polymorphic Function
Xem trước -
Problems With Function Overloads
Xem trước -
Using Generics Instead Of Function Overloads
Xem trước -
★Practice: Implement Map Function★
Xem trước -
★Solution: Implement Map Function★
Xem trước
-
What Are Classes
Xem trước -
Running TypeScript In Browser
Xem trước -
Creating First Class And Instance
Xem trước -
Constructor Function
Xem trước -
This Keyword
Xem trước -
Classes as Types
Xem trước -
Optional And Readonly Fields
Xem trước -
Inheritance With Classes
Xem trước -
Super Method
Xem trước -
★ Practice: Classes Exercise 1 ★
Xem trước -
★Solution: Classes Exercise 1★
Xem trước -
Access Modifiers
Xem trước -
Public Members
Xem trước -
Protected Members
Xem trước -
Private Members
Xem trước -
Which Access Modifier to Use?
Xem trước -
Overriding Methods In Child Classes
Xem trước -
Shorthand For Constructor
Xem trước -
More Control Over Classes
Xem trước -
Using Mutators - Setters
Xem trước -
Using Accessors - Getters
Xem trước -
Static Members
Xem trước -
Understanding Static Blocks
Xem trước -
Generics With Classes
Xem trước -
Generics Use Case
Xem trước -
Concrete Implementation With User Type
Xem trước -
Intro To Mixins
Xem trước -
Composing New Classes With Mixins
Xem trước -
★Practice: Classes Exercise 2★
Xem trước -
★Solution: Classes Exercise 2★
Xem trước
-
Module Introduction - Abstract Classes And Interfaces
Xem trước -
Introduction To Abstract Classes
Xem trước -
Shared methods in Abstract Classes
Xem trước -
Protected Constructor And Child Classes
Xem trước -
Adding Holidays To Classes
Xem trước -
Print Holidays Method
Xem trước -
Method Overriding In Child Class
Xem trước -
Introduction to Abstract Methods
Xem trước -
Introduction to Interfaces
Xem trước -
Extending Interfaces using extends keyword
Xem trước -
Inheriting From Multiple Interfaces
Xem trước -
Interfaces and Generics
Xem trước -
Assigning Generics To Interfaces
Xem trước -
Using Multiple Types as Generics
Xem trước -
Using interfaces with classes
Xem trước -
Multiple Classes Using the Same Interface
Xem trước -
Implementing Multiple Interfaces
Xem trước -
Multiple inheritance in classes using interfaces
Xem trước -
Interfaces and Access Modifiers
Xem trước -
Declaration Merging Interfaces
Xem trước -
Difference Between a Type and an Interface
Xem trước -
Difference Between a Abstract Class and an Interface
Xem trước -
Difference Between Interfaces and Abstract Classes 2
Xem trước -
What should you use? Abstract Class or Interfaces
Xem trước
-
Module Introduction - The TypeScript Compiler
Xem trước -
Setting up a Base Project
Xem trước -
Including and Excluding Files
Xem trước -
RootDir and outDir
Xem trước -
Setting a Compilation Target
Xem trước -
TypeScript Core Libs
Xem trước -
Type Checking Options
Xem trước -
JS in Browser Using Liver Server
Xem trước -
Understanding Source Maps
Xem trước
-
Module Introduction - Prototypes And Objects
Xem trước -
This Keyword In JS
Xem trước -
Weird Behaviour Of The This Keyword
Xem trước -
Constructor Functions
Xem trước -
Javascript’s Own Constructor Function
Xem trước -
Understanding Prototypes
Xem trước -
Prototypical Inheritance Theory
Xem trước -
Inheriting The User Properties
Xem trước -
Inheriting The User Prototypes
Xem trước -
Alternate Methods Of Creating Objects
Xem trước -
Introduction To Property Descriptors
Xem trước -
DefineProperty Method
Xem trước -
How Classes Are Syntactic Sugar On Prototypes
Xem trước
-
Introduction to Decorators
Xem trước -
Creating First Decorator
Xem trước -
Add a Replacement Function
Xem trước -
Adding an Initializer to greet()
Xem trước -
Creating a Separate @bound Decorator
Xem trước -
Introduction To Decorator Factories
Xem trước -
Strictly Typing Decorators
Xem trước -
Understanding Field Decorators
Xem trước -
Class Decorators
Xem trước -
Decorators For Accessors & Mutators
Xem trước -
Enhancing Accessor Decorators
Xem trước
-
Introduction to Decorators
Xem trước -
Strictly Typing Decorators
Xem trước -
Writing Our First Decorator
Xem trước -
When Are Decorators Invoked
Xem trước -
Introduction To Decorator Factories
Xem trước -
Changes To Decorators In TypeScript 5
Xem trước -
Adding To Prototype
Xem trước -
Interfaces For Prototypes
Xem trước -
Adding Functions to Prototypes
Xem trước -
Using Same Decorator With Multiple Classes
Xem trước -
Method Decorators
Xem trước -
Static Method Decorators
Xem trước -
Decorators For Method Parameters
Xem trước -
Decorators For Class Properties And Accessors
Xem trước -
Multiple Decorators And Returning Values from Class Decorators
Xem trước -
Decorator Composition and Evaluation
Xem trước
-
Intro To Built In Utility Types
Xem trước -
How Do Utility Types Work Behind The Scenes
Xem trước -
Awaited<Type>
Xem trước -
Record<Keys, Type>
Xem trước -
Pick<Type, Keys>
Xem trước -
Omit<OldType, Keys>
Xem trước -
Partial<Type>
Xem trước -
Required<Type>
Xem trước -
Readonly<Type>
Xem trước -
String Manipulation Types
Xem trước -
Satisfies Operator (TS Version 5 feature)
Xem trước
-
Transitioning JavaScript to TypeScript
Xem trước -
First Declaration File
Xem trước -
Reusable Types With Interfaces
Xem trước -
Function Overloads With Declaration Files
Xem trước -
Using Namespaces In Declaration Files
Xem trước -
Declaration For Classes
Xem trước -
Ambient Declarations
Xem trước -
Using @Types Packages
Xem trước
-
Introduction To Mongoose
Xem trước -
Creating a MongoDB Instance
Xem trước -
Configuring Mongoose With Express
Xem trước -
Understanding Schema and Model
Xem trước -
Creating Schema Interface
Xem trước -
Creating First Schema
Xem trước -
Creating a Task
Xem trước -
Get All Tasks
Xem trước -
Update Task
Xem trước
-
Introduction To Services
Xem trước -
Creating Task Service
Xem trước -
Using Task Service
Xem trước -
Introduction To Providers
Xem trước -
Creating First Provider
Xem trước -
Using The UpdateTaskProvider
Xem trước -
Using Validated Data
Xem trước -
Adding Default Values To Queries
Xem trước -
Optimizing Get Provider
Xem trước -
Error Handling In POST Route
Xem trước
-
Planning Layout Development
Xem trước -
Setting Layout For Tasks Page
Xem trước -
Tasks Counter Component
Xem trước -
Props For Tasks Counter
Xem trước -
Creating Task Component
Xem trước -
Props For Task Component
Xem trước -
Creating The Task Sidebar
Xem trước -
Creating User Profile Component
Xem trước -
Create TaskForm
Xem trước
-
Introducing Tanstack Query
Xem trước -
Setup Tanstack Query
Xem trước -
Create Task Mutation Hook
Xem trước -
Strictly Typing Response
Xem trước -
Using The Mutation Hook
Xem trước -
Create Query Hook For Tasks
Xem trước -
Using Query Hook For Tasks
Xem trước -
Mutation Hook For Updating Task
Xem trước -
Refreshing Tasks
Xem trước
Requirment
-
Basic knowledge of JavaScript. You do not need to be an expert.
-
NO prior TypeScript Knowledge Needed. You will learn TypeScript from scratch in this course.
-
ReactJS and NodeJS Basic Knowledge needed if you intend to work on those modules.
Outcomes
-
Learn TypeScript from scratch starting with the basic type safety and types offered by TypeScript to advanced OOP features.
-
Deep dive into Object Oriented Programming features offered by TypeScript. Includes lectures about classes, abstract classes, access modifiers and interfaces.
-
Understand advanced TypeScript features such as Generics, Decorators, Totality, Type Widening, Mapped Types, Conditional Types and so on.
-
Create a full stack application using TypeScript and learn how to use TypeScript with technologies like React, Shadcn/ui, Tanstack Query, NodeJs, MongodDB
-
Use TypeScript with front-end frameworks like React JS, Tanstack/React Query, and Shadcn/ui
-
Use TypeScript for back-end development using NodeJS, Express, Mongoose and MongoDB
2 Students
16 Courses
0 review