TypeScript Masterclass 2025 Edition - React + NodeJS Project
TypeScript V5 Updated Course - Full Stack Development, TypeScript with ReactJS, ShadcnUI, Node.js, Express and MongoDB.
TypeScript V5 Updated Course - Full Stack Development, TypeScript with ReactJS, ShadcnUI, Node.js, Express and MongoDB.
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 area empty
Introduction
Xem trướcWhat Is TypeScript
Xem trướcSetup Development Environment
Xem trướcSetting Up TypeScript Compiler
Xem trướcHow TypeScript Helps You Catch Errors
Xem trướcYour First TypeScript Program
Xem trướcDeep Dive into the JavaScript File Generated by TypeScript
Xem trướcTypeScript Type System
Xem trướcIntroduction To TypeSystem
Xem trướcAny Type
Xem trướcUnknown type
Xem trướcType Alias
Xem trướcInference, Annotation, Duck Typing and Declaration
Xem trướcUnion Types
Xem trướcQuick Conditional Types
Xem trướcUnderstanding Type Hierarchy
Xem trướcType Casting
Xem trước★Practice: Type System★
Xem trước★ Solution: Type System ★
Xem trướcIntroduction To Objects
Xem trướcWorking With Objects
Xem trướcType Alias For Objects
Xem trướcNested Objects
Xem trướcIndex Signatures With Objects
Xem trướcOptional And Readonly Properties
Xem trướcUnion Types With Objects
Xem trướcDiscriminating Unions
Xem trướcIntersection Types
Xem trước★Practice: Strictly Type an Object★
Xem trước★Solution: Strictly Type an Object★
Xem trướcIntroduction To Arrays And Enums
Xem trướcStrictly Typing Arrays
Xem trướcTuples
Xem trướcReadonly Arrays and Tuples
Xem trướcEnums
Xem trướcEnums are Available At Runtime
Xem trướcEnums Vs Objects
Xem trướcComputed Enums
Xem trướcEnums as Unions and Types
Xem trước★Practice: Arrays and Enums★
Xem trước★Solution: Arrays and Enums★
Xem trướcDeclaring Functions
Xem trướcDefault and Optional Parameters
Xem trướcCustom Parameters And Return Types
Xem trướcFunction Call Signatures
Xem trướcAnonymous Functions
Xem trướcVoid and never Types
Xem trướcAsync Functions
Xem trướcRest Parameters And Arguments
Xem trướcParameter Destructuring
Xem trướcIntroduction to Function Overloading
Xem trướcFunction Overloading In TypeScript
Xem trước★Practice: Functions in TypeScript★
Xem trước★Solution: Functions in TypeScript★
Xem trướcWhat are Generics
Xem trướcGeneric Function Declarations
Xem trướcGeneric and Constraints With Arrays
Xem trướcGenerics With Objects
Xem trướcKeyof Type Operator
Xem trướcGeneric Default Values
Xem trướcImplementing A Polymorphic Function
Xem trướcProblems With Function Overloads
Xem trướcUsing Generics Instead Of Function Overloads
Xem trước★Practice: Implement Map Function★
Xem trước★Solution: Implement Map Function★
Xem trướcWhat Are Classes
Xem trướcRunning TypeScript In Browser
Xem trướcCreating First Class And Instance
Xem trướcConstructor Function
Xem trướcThis Keyword
Xem trướcClasses as Types
Xem trướcOptional And Readonly Fields
Xem trướcInheritance With Classes
Xem trướcSuper Method
Xem trước★ Practice: Classes Exercise 1 ★
Xem trước★Solution: Classes Exercise 1★
Xem trướcAccess Modifiers
Xem trướcPublic Members
Xem trướcProtected Members
Xem trướcPrivate Members
Xem trướcWhich Access Modifier to Use?
Xem trướcOverriding Methods In Child Classes
Xem trướcShorthand For Constructor
Xem trướcMore Control Over Classes
Xem trướcUsing Mutators - Setters
Xem trướcUsing Accessors - Getters
Xem trướcStatic Members
Xem trướcUnderstanding Static Blocks
Xem trướcGenerics With Classes
Xem trướcGenerics Use Case
Xem trướcConcrete Implementation With User Type
Xem trướcIntro To Mixins
Xem trướcComposing New Classes With Mixins
Xem trước★Practice: Classes Exercise 2★
Xem trước★Solution: Classes Exercise 2★
Xem trướcModule Introduction - Abstract Classes And Interfaces
Xem trướcIntroduction To Abstract Classes
Xem trướcShared methods in Abstract Classes
Xem trướcProtected Constructor And Child Classes
Xem trướcAdding Holidays To Classes
Xem trướcPrint Holidays Method
Xem trướcMethod Overriding In Child Class
Xem trướcIntroduction to Abstract Methods
Xem trướcIntroduction to Interfaces
Xem trướcExtending Interfaces using extends keyword
Xem trướcInheriting From Multiple Interfaces
Xem trướcInterfaces and Generics
Xem trướcAssigning Generics To Interfaces
Xem trướcUsing Multiple Types as Generics
Xem trướcUsing interfaces with classes
Xem trướcMultiple Classes Using the Same Interface
Xem trướcImplementing Multiple Interfaces
Xem trướcMultiple inheritance in classes using interfaces
Xem trướcInterfaces and Access Modifiers
Xem trướcDeclaration Merging Interfaces
Xem trướcDifference Between a Type and an Interface
Xem trướcDifference Between a Abstract Class and an Interface
Xem trướcDifference Between Interfaces and Abstract Classes 2
Xem trướcWhat should you use? Abstract Class or Interfaces
Xem trướcModule Introduction - The TypeScript Compiler
Xem trướcSetting up a Base Project
Xem trướcIncluding and Excluding Files
Xem trướcRootDir and outDir
Xem trướcSetting a Compilation Target
Xem trướcTypeScript Core Libs
Xem trướcType Checking Options
Xem trướcJS in Browser Using Liver Server
Xem trướcUnderstanding Source Maps
Xem trướcModule Introduction - Prototypes And Objects
Xem trướcThis Keyword In JS
Xem trướcWeird Behaviour Of The This Keyword
Xem trướcConstructor Functions
Xem trướcJavascript’s Own Constructor Function
Xem trướcUnderstanding Prototypes
Xem trướcPrototypical Inheritance Theory
Xem trướcInheriting The User Properties
Xem trướcInheriting The User Prototypes
Xem trướcAlternate Methods Of Creating Objects
Xem trướcIntroduction To Property Descriptors
Xem trướcDefineProperty Method
Xem trướcHow Classes Are Syntactic Sugar On Prototypes
Xem trướcIntroduction to Decorators
Xem trướcCreating First Decorator
Xem trướcAdd a Replacement Function
Xem trướcAdding an Initializer to greet()
Xem trướcCreating a Separate @bound Decorator
Xem trướcIntroduction To Decorator Factories
Xem trướcStrictly Typing Decorators
Xem trướcUnderstanding Field Decorators
Xem trướcClass Decorators
Xem trướcDecorators For Accessors & Mutators
Xem trướcEnhancing Accessor Decorators
Xem trướcIntroduction to Decorators
Xem trướcStrictly Typing Decorators
Xem trướcWriting Our First Decorator
Xem trướcWhen Are Decorators Invoked
Xem trướcIntroduction To Decorator Factories
Xem trướcChanges To Decorators In TypeScript 5
Xem trướcAdding To Prototype
Xem trướcInterfaces For Prototypes
Xem trướcAdding Functions to Prototypes
Xem trướcUsing Same Decorator With Multiple Classes
Xem trướcMethod Decorators
Xem trướcStatic Method Decorators
Xem trướcDecorators For Method Parameters
Xem trướcDecorators For Class Properties And Accessors
Xem trướcMultiple Decorators And Returning Values from Class Decorators
Xem trướcDecorator Composition and Evaluation
Xem trướcIntro To Built In Utility Types
Xem trướcHow Do Utility Types Work Behind The Scenes
Xem trướcAwaited<Type>
Xem trướcRecord<Keys, Type>
Xem trướcPick<Type, Keys>
Xem trướcOmit<OldType, Keys>
Xem trướcPartial<Type>
Xem trướcRequired<Type>
Xem trướcReadonly<Type>
Xem trướcString Manipulation Types
Xem trướcSatisfies Operator (TS Version 5 feature)
Xem trướcTransitioning JavaScript to TypeScript
Xem trướcFirst Declaration File
Xem trướcReusable Types With Interfaces
Xem trướcFunction Overloads With Declaration Files
Xem trướcUsing Namespaces In Declaration Files
Xem trướcDeclaration For Classes
Xem trướcAmbient Declarations
Xem trướcUsing @Types Packages
Xem trướcIntroduction To Mongoose
Xem trướcCreating a MongoDB Instance
Xem trướcConfiguring Mongoose With Express
Xem trướcUnderstanding Schema and Model
Xem trướcCreating Schema Interface
Xem trướcCreating First Schema
Xem trướcCreating a Task
Xem trướcGet All Tasks
Xem trướcUpdate Task
Xem trướcIntroduction To Services
Xem trướcCreating Task Service
Xem trướcUsing Task Service
Xem trướcIntroduction To Providers
Xem trướcCreating First Provider
Xem trướcUsing The UpdateTaskProvider
Xem trướcUsing Validated Data
Xem trướcAdding Default Values To Queries
Xem trướcOptimizing Get Provider
Xem trướcError Handling In POST Route
Xem trướcPlanning Layout Development
Xem trướcSetting Layout For Tasks Page
Xem trướcTasks Counter Component
Xem trướcProps For Tasks Counter
Xem trướcCreating Task Component
Xem trướcProps For Task Component
Xem trướcCreating The Task Sidebar
Xem trướcCreating User Profile Component
Xem trướcCreate TaskForm
Xem trướcIntroducing Tanstack Query
Xem trướcSetup Tanstack Query
Xem trướcCreate Task Mutation Hook
Xem trướcStrictly Typing Response
Xem trướcUsing The Mutation Hook
Xem trướcCreate Query Hook For Tasks
Xem trướcUsing Query Hook For Tasks
Xem trướcMutation Hook For Updating Task
Xem trướcRefreshing Tasks
Xem trướcBasic 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.
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