Understanding TypeScript
Boost your JavaScript projects with TypeScript: Learn all about core types, generics, TypeScript + React or Node & more!
Boost your JavaScript projects with TypeScript: Learn all about core types, generics, TypeScript + React or Node & more!
March 2025: BIG COURSE UPDATE
Re-recorded large parts of the course to cover missing TypeScript concepts (e.g., "satisfies"), improve explanations and add extra examples & demo projects.
Added more than 10h of new content!
---
Learn what TypeScript is, why it really is a powerful addition to JavaScript, what its features are and how to use it! Learn why TypeScript is amazing, how it improves your JavaScript code and how it helps you avoid nasty bugs and errors!
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 and used by Angular 2+ (Google) and other popular libraries, it's here to stay. Indeed, TypeScript is one of the most popular web development languages you can learn these days!
Gain an edge today and be amongst the first to really understand TypeScript!
Learn how you can use TypeScript to bring modern JS features like destructuring, arrow functions or classes to any environment and codebase - even if it does not support those features yet! Understand which types you may use and how you can build your own types. Learn how to write better code with types and with the many features offered by TypeScript!
But, in this course, we'll not stop after the basics! You will also learn about more advanced features (like decorators) 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 or plain JavaScript/ TypeScript projects. Instead, a complete module covers how you may use TypeScript with ReactJS and improve your React code with TypeScript as well.
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 more than that though. Because this course comes with plenty of exercises (and solutions, of course) in addition to all the high-quality learning videos.
So much Content!
I'm not a fan of these courses which teach you the basics and then leave you alone.
That's why in this course you'll get insights into:
Types and how to use them
How the TypeScript compiler works (and how you may configure it)
ES6 features with TypeScript
Advanced TypeScript Features like "infer", Mapped Types, Constant Types & Much More!
Classes in TypeScript
Namespaces and modules
Interfaces
Generics
Decorators
How to integrate Third-Party JavaScript libraries like Zod into your TypeScript projects
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 (incl. native Node.js TypeScript support)
Real projects and use-cases!
And so much more!
FAQ area empty
Welcome to the Course!
91 Xem trướcWhat Is TypeScript?
174 Xem trướcWhy Would You Use TypeScript?
331 Xem trướcJoin Our Learning Community
Installing & Using TypeScript
378 Xem trướcEditor & Project Setup
131About This Course
100How To Get The Most Out Of The Course
209 Xem trướcCourse Setup & Course Code
Module Introduction
72 Xem trướcUsing Node.js To Run JavaScript Code
Xem trướcProject Setup
175Working with Types & Exploring Built-in Types
284Vanilla JavaScript Has Types, Too!
173Type Inference vs Type Assignment
179Assigning Types To Function Parameters
165The "any" Type
182Understanding Union Types
122Arrays & Types
147Advanced Array Types
116A First Glimpse At Generic Types - Alternative Array Type Declaration
106Making Sense of Tuples
195Object Types
288Tricky: The "Must Not Be Null" Type
145Flexible Objects with the Record Type
295Working with Enums
399Being Specific With Literal Types
304Type Aliases & Custom Types
253Function Return Value Types
184The "void" Type
87The "never" Type
196Functions As Types
516Null & undefined - Special Types
159Inferred null & A First Look At Type Narrowing
208Forced "Not Null" And Optional Chaining
320Type Casting
266The "unknown" Type
322Optional Values & TypeScript
161Nullish Coalescing
336Module Introduction
86TypeScript Project Setup & Creating a tsconfig.json File
166Exploring tsconfig Options: Target & Libs
331Controlling File Input & Emission
316Configuring Type Checking
195Configuring Code Quality Checks
Example tsconfig.json & Deep Dive
Compiling with tsconfig
88Using TypeScript's Watch Mode
61Installing Type Packages
335Module Introduction
62What are Classes?
83Creating a First Class
364A Useful TypeScript Shortcut & Compiling to JavaScript
318Making Sense of "public" and "private"
347Marking Fields as "readonly"
113Understanding Getters
211Setting Values with Setters
306Exploring Static Properties & Methods
150Understanding Inheritance
202The "protected" Modifier
153Making Sense Of Abstract Classes
264Introducing Interfaces
98Creating a First Interface
237Interfaces As Object Types
102Interfaces vs Type Aliases & Understanding Declaration Merging
243Using Interfaces To Define Function Types
Implementing Interfaces
190Ensuring Base Types with Interfaces
112Extending Interfaces
114How Interfaces Get (Not) Compiled To JavaScript
60Module Introduction
48Intersection Types
276More on Type Guards
330Discriminated Unions
273Type Guards via "instanceof"
157"Outsourcing" Type Guards & Using Type Predicates
194Function Overloads
279Working with Function Overloads
151Making Sense of Index Types
302Constant Types with "as const"
172Revisiting the "Record" Type
105The "satisfies" Keyword
469Advanced Types
Module Introduction
49A Generic Type We Already Know
116Understanding Generic Types
121Creating & Using a Generic Type
376Generic Functions & Inference
309Working with Multiple Generic Parameters
120Generics & Constraints
243Constraints & Multiple Generic Types
162Working with Generic Classes & Interfaces
126Summary
63Module Introduction
48Using "typeof"
287"typeof" & A More Useful Example
246Another Great Use-case for "typeof"
Extracting Keys with "keyof"
142"keyof" & A More Useful Example
386Understanding Indexed Access Types
275Accessing Array Elements with Indexed Access Types
234Introducing Mapped Types
472Readonly Types & Optional Mapping
441Exploring Template Literal Types
613Introducing Conditional Types
566Conditional Types - Another Example
364Making Sense of the "infer" Keyword
448TypeScript's Got You Covered: Built-in Utility Types
177Module Introduction
50What Are Decorators? And ECMAScript Decorators vs Experimental Decorators
429Exploring Different Types of Decorators
77Building a First Decorator
489Building a Class Decorators That Edits a Class
325Understanding Decorator Code Execution Order
187Creating a Method Decorator
257Using Decorators To Solve A Common Problem
249Implementing A Decorator-based Solution: autobind
224Replacing Methods with Decorators
218Introducing the Field Decorator
283Building Configurable Decorators with Factories
241Onwards to Experimental Decorators
39Module Introduction
115A First Class Decorator
321Working with Decorator Factories
122Building More Useful Decorators
359Adding Multiple Decorators
172Diving into Property Decorators
300Accessor & Parameter Decorators
336When Do Decorators Execute?
191Returning (and changing) a Class in a Class Decorator
517Other Decorator Return Types
224Example: Creating an "Autobind" Decorator
544Validation with Decorators - First Steps
448Validation with Decorators - Finished
734Fixing a Validator Bug
Wrap Up
201Useful Resources & Links
Module Introduction
92Getting Started
320DOM Element Selection & OOP Rendering
703Interacting with DOM Elements
483Creating & Using an "Autobind" Decorator
284Fetching User Input
554Creating a Re-Usable Validation Functionality
850Rendering Project Lists
678Managing Application State with Singletons
932More Classes & Custom Types
431Filtering Projects with Enums
359Adding Inheritance & Generics
1120Rendering Project Items with a Class
718Using a Getter
213Utilizing Interfaces to Implement Drag & Drop
624Drag Events & Reflecting the Current State in the UI
358Adding a Droppable Area
488Finishing Drag & Drop
404Wrap Up
82Useful Resources & Links
Module Introduction
84Writing Module Code - Your Options
154Working with Namespaces
650Organizing Files & Folders
521A Problem with Namespace Imports
172Using ES Modules
740Configuring tsconfig
Understanding various Import & Export Syntaxes
297How Does Code In Modules Execute?
103Understanding "type" Imports
135Wrap Up
194Useful Resources & Links
About This Section
Module Introduction
61What is Webpack & Why do we need it?
332Installing Webpack & Important Dependencies
235Adding Entry & Output Configuration
357Adding TypeScript Support with the ts-loader Package
420Adjust Webpack Config
Finishing the Setup & Adding webpack-dev-server
213Adding a Production Workflow
244Wrap Up
100Useful Resources & Links
Module Introduction
69Problem: Using JavaScript (!) Libraries with TypeScript
223Solution: Installing @types Packages
280Exploring .d.ts Files
403Diving Deeper Into .d.ts Files
Using "declare" Manually
There Are Libraries With Great TypeScript Support!
141Exploring Zod As a TypeScript-first Library
482Diving Deeper Into Zod
265Runtime vs Compile-time Types with Zod
256Module Introduction
82Setting Up a React + TypeScript Project
248Typing Components & Props
347Using Components & Props
167The Special "children" Prop & Optional Props
181Adding Another Components With Props
243Component Functions & Types - An Alternative
150Managing State
125Passing Functions As Props
315Handling Form Submission
283Working with Refs
340More Function Passing & State Updating
245Fixing a Typo
Wrap Up
66Module Introduction
55Node & TypeScript: Options & Alternatives
232Setting up a Project
443First Server & Working with Node Types
208Adding & Using Express (+ Types)
207Managing Data with Help of TypeScript
508Adding & Testing a First Route
578Finishing The Basic App
699Native Node.js TypeScript Support (Without Compilation!)
448Type Stripping vs Type Transformation
541Exploring Alternative Runtimes Like Bun
104LEGACY Lectures Below
Module Introduction
26Using Types
620TypeScript Types vs JavaScript Types
293Important: Type Casing
Working with Numbers, Strings & Booleans
343Type Assignment & Type Inference
338Understanding Types
Object Types
452Nested Objects & Types
Arrays Types
329Working with Tuples
379Working with Enums
425The "any" Type
124Union Types
390Literal Types
474Type Aliases / Custom Types
179Type Aliases & Object Types
Core Types & Concepts
Function Return Types & "void"
445Functions as Types
334Function Types & Callbacks
263Functions & Types
The "unknown" Type
223The "never" Type
250Wrap Up
111Useful Resources & Links
Where Should You Go Next?
LEGACY Lectures Below
Module Introduction
46Using "Watch Mode"
125Compiling the Entire Project / Multiple Files
226Including & Excluding Files
373Setting a Compilation Target
244Understanding TypeScript Core Libs
331More Configuration & Compilation Options
101Working with Source Maps
119RootDir and outDir
331Stop Emitting Files on Compilation Errors
171Strict Compilation
664Code Quality Options
262Debugging with Visual Studio Code
260Wrap Up
68Useful Resources & Links
Where Should You Go Next?
LEGACY Lectures Below
Module Introduction
54What are Classes?
288Creating a First Class
352Compiling to JavaScript
182Constructor Functions & The "this" Keyword
454"private" and "public" Access Modifiers
352Shorthand Initialization
177"readonly" Properties
165Class Basics
Inheritance
487Overriding Properties & The "protected" Modifier
163Getters & Setters
402Static Methods & Properties
308Abstract Classes
325Singletons & Private Constructors
307Classes - A Summary
103Classes
A First Interface
266Using Interfaces with Classes
370Why Interfaces?
94Readonly Interface Properties
95Extending Interfaces
154Interfaces as Function Types
161Optional Parameters & Properties
251Compiling Interfaces to JavaScript
118Interfaces
Wrap Up
114Useful Resources & Links
Where Should You Go Next?
LEGACY Lectures Below
Module Introduction
64Built-in Generics & What are Generics?
524Creating a Generic Function
513Working with Constraints
219Another Generic Function
335The "keyof" Constraint
186Generic Classes
534A First Summary
82Generic Utility Types
439Generic Types vs Union Types
221Generics
Useful Resources & Links
Where Should You Go Next?
JavaScript knowledge is required, though you don't need to be an Expert
NO prior TypeScript experience is required
ES6 Knowledge is a plus but not required
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 about basic and advanced features (e.g., "infer", "as const", "satisfies" & much more!)
Explore Classes, Interfaces, Generic Types, Derived Types & Other Crucial Concepts
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