Course Overview
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
FAQ area empty
Course curriculum
-
Welcome to the Course!
91 Xem trước -
What Is TypeScript?
174 Xem trước -
Why Would You Use TypeScript?
331 Xem trước -
Join Our Learning Community
-
Installing & Using TypeScript
378 Xem trước -
Editor & Project Setup
131 -
About This Course
100 -
How To Get The Most Out Of The Course
209 Xem trước -
Course Setup & Course Code
-
Module Introduction
72 Xem trước -
Using Node.js To Run JavaScript Code
Xem trước -
Project Setup
175 -
Working with Types & Exploring Built-in Types
284 -
Vanilla JavaScript Has Types, Too!
173 -
Type Inference vs Type Assignment
179 -
Assigning Types To Function Parameters
165 -
The "any" Type
182 -
Understanding Union Types
122 -
Arrays & Types
147 -
Advanced Array Types
116 -
A First Glimpse At Generic Types - Alternative Array Type Declaration
106 -
Making Sense of Tuples
195 -
Object Types
288 -
Tricky: The "Must Not Be Null" Type
145 -
Flexible Objects with the Record Type
295 -
Working with Enums
399 -
Being Specific With Literal Types
304 -
Type Aliases & Custom Types
253 -
Function Return Value Types
184 -
The "void" Type
87 -
The "never" Type
196 -
Functions As Types
516 -
Null & undefined - Special Types
159 -
Inferred null & A First Look At Type Narrowing
208 -
Forced "Not Null" And Optional Chaining
320 -
Type Casting
266 -
The "unknown" Type
322 -
Optional Values & TypeScript
161 -
Nullish Coalescing
336
-
Module Introduction
86 -
TypeScript Project Setup & Creating a tsconfig.json File
166 -
Exploring tsconfig Options: Target & Libs
331 -
Controlling File Input & Emission
316 -
Configuring Type Checking
195 -
Configuring Code Quality Checks
-
Example tsconfig.json & Deep Dive
-
Compiling with tsconfig
88 -
Using TypeScript's Watch Mode
61 -
Installing Type Packages
335
-
Module Introduction
62 -
What are Classes?
83 -
Creating a First Class
364 -
A Useful TypeScript Shortcut & Compiling to JavaScript
318 -
Making Sense of "public" and "private"
347 -
Marking Fields as "readonly"
113 -
Understanding Getters
211 -
Setting Values with Setters
306 -
Exploring Static Properties & Methods
150 -
Understanding Inheritance
202 -
The "protected" Modifier
153 -
Making Sense Of Abstract Classes
264 -
Introducing Interfaces
98 -
Creating a First Interface
237 -
Interfaces As Object Types
102 -
Interfaces vs Type Aliases & Understanding Declaration Merging
243 -
Using Interfaces To Define Function Types
-
Implementing Interfaces
190 -
Ensuring Base Types with Interfaces
112 -
Extending Interfaces
114 -
How Interfaces Get (Not) Compiled To JavaScript
60
-
Module Introduction
48 -
Intersection Types
276 -
More on Type Guards
330 -
Discriminated Unions
273 -
Type Guards via "instanceof"
157 -
"Outsourcing" Type Guards & Using Type Predicates
194 -
Function Overloads
279 -
Working with Function Overloads
151 -
Making Sense of Index Types
302 -
Constant Types with "as const"
172 -
Revisiting the "Record" Type
105 -
The "satisfies" Keyword
469 -
Advanced Types
-
Module Introduction
49 -
A Generic Type We Already Know
116 -
Understanding Generic Types
121 -
Creating & Using a Generic Type
376 -
Generic Functions & Inference
309 -
Working with Multiple Generic Parameters
120 -
Generics & Constraints
243 -
Constraints & Multiple Generic Types
162 -
Working with Generic Classes & Interfaces
126 -
Summary
63
-
Module Introduction
48 -
Using "typeof"
287 -
"typeof" & A More Useful Example
246 -
Another Great Use-case for "typeof"
-
Extracting Keys with "keyof"
142 -
"keyof" & A More Useful Example
386 -
Understanding Indexed Access Types
275 -
Accessing Array Elements with Indexed Access Types
234 -
Introducing Mapped Types
472 -
Readonly Types & Optional Mapping
441 -
Exploring Template Literal Types
613 -
Introducing Conditional Types
566 -
Conditional Types - Another Example
364 -
Making Sense of the "infer" Keyword
448 -
TypeScript's Got You Covered: Built-in Utility Types
177
-
Module Introduction
50 -
What Are Decorators? And ECMAScript Decorators vs Experimental Decorators
429 -
Exploring Different Types of Decorators
77 -
Building a First Decorator
489 -
Building a Class Decorators That Edits a Class
325 -
Understanding Decorator Code Execution Order
187 -
Creating a Method Decorator
257 -
Using Decorators To Solve A Common Problem
249 -
Implementing A Decorator-based Solution: autobind
224 -
Replacing Methods with Decorators
218 -
Introducing the Field Decorator
283 -
Building Configurable Decorators with Factories
241 -
Onwards to Experimental Decorators
39
-
Module Introduction
115 -
A First Class Decorator
321 -
Working with Decorator Factories
122 -
Building More Useful Decorators
359 -
Adding Multiple Decorators
172 -
Diving into Property Decorators
300 -
Accessor & Parameter Decorators
336 -
When Do Decorators Execute?
191 -
Returning (and changing) a Class in a Class Decorator
517 -
Other Decorator Return Types
224 -
Example: Creating an "Autobind" Decorator
544 -
Validation with Decorators - First Steps
448 -
Validation with Decorators - Finished
734 -
Fixing a Validator Bug
-
Wrap Up
201 -
Useful Resources & Links
-
Module Introduction
92 -
Getting Started
320 -
DOM Element Selection & OOP Rendering
703 -
Interacting with DOM Elements
483 -
Creating & Using an "Autobind" Decorator
284 -
Fetching User Input
554 -
Creating a Re-Usable Validation Functionality
850 -
Rendering Project Lists
678 -
Managing Application State with Singletons
932 -
More Classes & Custom Types
431 -
Filtering Projects with Enums
359 -
Adding Inheritance & Generics
1120 -
Rendering Project Items with a Class
718 -
Using a Getter
213 -
Utilizing Interfaces to Implement Drag & Drop
624 -
Drag Events & Reflecting the Current State in the UI
358 -
Adding a Droppable Area
488 -
Finishing Drag & Drop
404 -
Wrap Up
82 -
Useful Resources & Links
-
Module Introduction
84 -
Writing Module Code - Your Options
154 -
Working with Namespaces
650 -
Organizing Files & Folders
521 -
A Problem with Namespace Imports
172 -
Using ES Modules
740 -
Configuring tsconfig
-
Understanding various Import & Export Syntaxes
297 -
How Does Code In Modules Execute?
103 -
Understanding "type" Imports
135 -
Wrap Up
194 -
Useful Resources & Links
-
About This Section
-
Module Introduction
61 -
What is Webpack & Why do we need it?
332 -
Installing Webpack & Important Dependencies
235 -
Adding Entry & Output Configuration
357 -
Adding TypeScript Support with the ts-loader Package
420 -
Adjust Webpack Config
-
Finishing the Setup & Adding webpack-dev-server
213 -
Adding a Production Workflow
244 -
Wrap Up
100 -
Useful Resources & Links
-
Module Introduction
69 -
Problem: Using JavaScript (!) Libraries with TypeScript
223 -
Solution: Installing @types Packages
280 -
Exploring .d.ts Files
403 -
Diving Deeper Into .d.ts Files
-
Using "declare" Manually
-
There Are Libraries With Great TypeScript Support!
141 -
Exploring Zod As a TypeScript-first Library
482 -
Diving Deeper Into Zod
265 -
Runtime vs Compile-time Types with Zod
256
-
Module Introduction
82 -
Setting Up a React + TypeScript Project
248 -
Typing Components & Props
347 -
Using Components & Props
167 -
The Special "children" Prop & Optional Props
181 -
Adding Another Components With Props
243 -
Component Functions & Types - An Alternative
150 -
Managing State
125 -
Passing Functions As Props
315 -
Handling Form Submission
283 -
Working with Refs
340 -
More Function Passing & State Updating
245 -
Fixing a Typo
-
Wrap Up
66
-
Module Introduction
55 -
Node & TypeScript: Options & Alternatives
232 -
Setting up a Project
443 -
First Server & Working with Node Types
208 -
Adding & Using Express (+ Types)
207 -
Managing Data with Help of TypeScript
508 -
Adding & Testing a First Route
578 -
Finishing The Basic App
699 -
Native Node.js TypeScript Support (Without Compilation!)
448 -
Type Stripping vs Type Transformation
541 -
Exploring Alternative Runtimes Like Bun
104
-
LEGACY Lectures Below
-
Module Introduction
26 -
Using Types
620 -
TypeScript Types vs JavaScript Types
293 -
Important: Type Casing
-
Working with Numbers, Strings & Booleans
343 -
Type Assignment & Type Inference
338 -
Understanding Types
-
Object Types
452 -
Nested Objects & Types
-
Arrays Types
329 -
Working with Tuples
379 -
Working with Enums
425 -
The "any" Type
124 -
Union Types
390 -
Literal Types
474 -
Type Aliases / Custom Types
179 -
Type Aliases & Object Types
-
Core Types & Concepts
-
Function Return Types & "void"
445 -
Functions as Types
334 -
Function Types & Callbacks
263 -
Functions & Types
-
The "unknown" Type
223 -
The "never" Type
250 -
Wrap Up
111 -
Useful Resources & Links
-
Where Should You Go Next?
-
LEGACY Lectures Below
-
Module Introduction
46 -
Using "Watch Mode"
125 -
Compiling the Entire Project / Multiple Files
226 -
Including & Excluding Files
373 -
Setting a Compilation Target
244 -
Understanding TypeScript Core Libs
331 -
More Configuration & Compilation Options
101 -
Working with Source Maps
119 -
RootDir and outDir
331 -
Stop Emitting Files on Compilation Errors
171 -
Strict Compilation
664 -
Code Quality Options
262 -
Debugging with Visual Studio Code
260 -
Wrap Up
68 -
Useful Resources & Links
-
Where Should You Go Next?
-
LEGACY Lectures Below
-
Module Introduction
54 -
What are Classes?
288 -
Creating a First Class
352 -
Compiling to JavaScript
182 -
Constructor Functions & The "this" Keyword
454 -
"private" and "public" Access Modifiers
352 -
Shorthand Initialization
177 -
"readonly" Properties
165 -
Class Basics
-
Inheritance
487 -
Overriding Properties & The "protected" Modifier
163 -
Getters & Setters
402 -
Static Methods & Properties
308 -
Abstract Classes
325 -
Singletons & Private Constructors
307 -
Classes - A Summary
103 -
Classes
-
A First Interface
266 -
Using Interfaces with Classes
370 -
Why Interfaces?
94 -
Readonly Interface Properties
95 -
Extending Interfaces
154 -
Interfaces as Function Types
161 -
Optional Parameters & Properties
251 -
Compiling Interfaces to JavaScript
118 -
Interfaces
-
Wrap Up
114 -
Useful Resources & Links
-
Where Should You Go Next?
-
LEGACY Lectures Below
-
Module Introduction
64 -
Built-in Generics & What are Generics?
524 -
Creating a Generic Function
513 -
Working with Constraints
219 -
Another Generic Function
335 -
The "keyof" Constraint
186 -
Generic Classes
534 -
A First Summary
82 -
Generic Utility Types
439 -
Generic Types vs Union Types
221 -
Generics
-
Useful Resources & Links
-
Where Should You Go Next?
Requirment
-
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
Outcomes
-
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
0 Student
3 Courses
0 review