Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Understanding TypeScript
Getting Started
Welcome to the Course! (1:55)
What Is TypeScript & Why Should You Use It? (4:33)
Join our Online Learning Community
Installing & Using TypeScript (13:22)
TypeScript Advantages - Overview (3:05)
Course Outline (4:17)
Setting Up A Code Editor / IDE (3:06)
The Course Project Setup (7:20)
The Academind Pro Referral Program
TypeScript Basics & Basic Types
Module Introduction (0:26)
Using Types (10:20)
TypeScript Types vs JavaScript Types (4:53)
Working with Numbers, Strings & Booleans (5:43)
Type Assignment & Type Inference (5:38)
Quiz: Understanding Types
Object Types (7:32)
Arrays Types (5:29)
Working with Tuples (6:19)
Working with Enums (7:05)
The "any" Type (2:04)
Union Types (6:30)
Literal Types (7:54)
Type Aliases / Custom Types (2:59)
Quiz: Core Types & Concepts
Function Return Types & "void" (7:25)
Functions as Types (5:34)
Function Types & Callbacks (4:23)
Quiz: Functions & Types
The "unknown" Type (3:43)
The "never" Type (4:10)
Wrap Up (1:51)
Useful Resources & Links
The TypeScript Compiler (and its Configuration)
Module Introduction (0:46)
Using "Watch Mode" (2:05)
Compiling the Entire Project / Multiple Files (3:46)
Including & Excluding Files (6:13)
Setting a Compilation Target (4:04)
Understanding TypeScript Core Libs (5:31)
More Configuration & Compilation Options (1:41)
Working with Source Maps (1:59)
rootDir and outDir (5:31)
Stop Emitting Files on Compilation Errors (2:51)
Strict Compilation (11:04)
Code Quality Options (4:22)
Debugging with Visual Studio Code (4:20)
Wrap Up (1:08)
Useful Resources & Links
Next-generation JavaScript & TypeScript
Module Introduction (2:21)
"let" and "const" (6:33)
Arrow Functions (4:50)
Default Function Parameters (2:09)
The Spread Operator (...) (4:32)
Rest Parameters (5:04)
Array & Object Destructuring (5:17)
How Code Gets Compiled & Wrap Up (1:37)
Useful Resources & Links
Classes & Interfaces
Module Introduction (0:54)
What are Classes? (4:48)
Creating a First Class (5:52)
Compiling to JavaScript (3:02)
Constructor Functions & The "this" Keyword (7:35)
"private" and "public" Access Modifiers (5:52)
Shorthand Initialization (2:57)
"readonly" Properties (2:45)
Quiz: Class Basics
Inheritance (8:07)
Overriding Properties & The "protected" Modifier (2:43)
Getters & Setters (6:42)
Static Methods & Properties (5:08)
Abstract Classes (5:25)
Singletons & Private Constructors (5:07)
Classes - A Summary (1:43)
Quiz: Classes
A First Interface (4:26)
Using Interfaces with Classes (6:10)
Why Interfaces? (1:34)
Readonly Interface Properties (1:35)
Extending Interfaces (2:34)
Interfaces as Function Types (2:41)
Optional Parameters & Properties (4:11)
Compiling Interfaces to JavaScript (1:58)
Quiz: Interfaces
Wrap Up (1:54)
Useful Resources & Links
Advanced Types
Module Introduction (0:58)
Intersection Types (4:58)
More on Type Guards (10:34)
Discriminated Unions (6:11)
Type Casting (7:45)
Index Properties (6:35)
Function Overloads (6:18)
Optional Chaining (4:21)
Nullish Coalescing (2:44)
Quiz: Advanced Types
Wrap Up (1:20)
Useful Resources & Links
Generics
Module Introduction (1:04)
Built-in Generics & What are Generics? (8:44)
Creating a Generic Function (8:33)
Working with Constraints (3:39)
Another Generic Function (5:35)
The "keyof" Constraint (3:06)
Generic Classes (8:54)
A First Summary (1:22)
Generic Utility Types (7:19)
Generic Types vs Union Types (3:41)
Quiz: Generics
Useful Resources & Links
Decorators
Module Introduction (1:34)
A First Class Decorator (5:21)
Working with Decorator Factories (2:02)
Building More Useful Decorators (5:59)
Adding Multiple Decorators (2:52)
Diving into Property Decorators (5:00)
Accessor & Parameter Decorators (5:36)
When Do Decorators Execute? (3:11)
Returning (and changing) a Class in a Class Decorator (8:37)
Other Decorator Return Types (3:44)
Example: Creating an "Autobind" Decorator (9:04)
Validation with Decorators - First Steps (7:28)
Validation with Decorators - Finished (12:14)
Wrap Up (3:21)
Fixing a Bug
Useful Resources & Links
Practice Time! Let's build a Drag & Drop Project
Module Introduction (0:54)
Getting Started (5:20)
DOM Element Selection & OOP Rendering (11:43)
Interacting with DOM Elements (8:03)
Creating & Using an "Autobind" Decorator (4:44)
Fetching User Input (9:14)
Creating a Re-Usable Validation Functionality (14:10)
Rendering Project Lists (11:18)
Managing Application State with Singletons (15:32)
More Classes & Custom Types (7:11)
Filtering Projects with Enums (5:59)
Adding Inheritance & Generics (18:40)
Rendering Project Items with a Class (11:58)
Using a Getter (3:33)
Utilizing Interfaces to Implement Drag & Drop (10:24)
Drag Events & Reflecting the Current State in the UI (5:58)
Adding a Droppable Area (8:08)
Finishing Drag & Drop (6:44)
Wrap Up (1:22)
Useful Resources & Links
Modules & Namespaces
Module Introduction (1:11)
Writing Module Code - Your Options (3:50)
Working with Namespaces (10:50)
Organizing Files & Folders (8:41)
A Problem with Namespace Imports (2:52)
Using ES Modules (12:20)
Understanding various Import & Export Syntaxes (4:57)
How Does Code In Modules Execute? (1:43)
Wrap Up (3:14)
Useful Resources & Links
Using Webpack with TypeScript
Module Introduction (1:01)
What is Webpack & Why do we need it? (5:32)
Installing Webpack & Important Dependencies (3:55)
Adding Entry & Output Configuration (5:57)
Adding TypeScript Support with the ts-loader Package (7:00)
Finishing the Setup & Adding webpack-dev-server (3:33)
Adding a Production Workflow (4:04)
Wrap Up (1:40)
Useful Resources & Links
3rd Party Libraries & TypeScript
Module Introduction (1:18)
Using JavaScript (!) Libraries with TypeScript (9:01)
Using "declare" as a "Last Resort" (2:25)
No Types Needed: class-transformer (8:28)
TypeScript-embracing: class-validator (6:16)
Wrap Up (1:57)
Useful Resources & Links
Time to Practice! Let's build a "Select & Share a Place" App (incl. Google Maps)
Module Introduction (0:30)
Project Setup (3:56)
Getting User Input (2:41)
Setting Up a Google API Key (2:48)
Using Axios to Fetch Coordinates for an Entered Address (10:14)
Rendering a Map with Google Maps (incl. Types!) (6:35)
Useful Resources & Links
React.js & TypeScript
Module Introduction (1:04)
Setting Up a React + TypeScript Project (5:21)
How Do React + TypeScript Work Together? (3:46)
Working with Props and Types for Props (6:58)
Getting User Input with "refs" (7:03)
Cross-Component Communication (3:58)
Working with State & Types (4:28)
Managing State Better (1:33)
More Props & State Work (4:09)
Adding Styling (1:01)
Types for other React Features (e.g. Redux or Routing) (4:00)
Wrap Up (1:34)
Useful Resources & Links
Node.js + Express & TypeScript
Module Introduction (1:23)
Executing TypeScript Code with Node.js (3:33)
Setting up a Project (4:06)
Finished Setup & Working with Types (in Node + Express Apps) (5:17)
Adding Middleware & Types (5:45)
Working with Controllers & Parsing Request Bodies (9:53)
More CRUD Operations (10:20)
Wrap Up (2:11)
Useful Resources & Links
Course Roundup
Roundup & Next Steps (3:04)
The "keyof" Constraint
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock