TypeScript adds clear types on top of JavaScript. You should know basic JavaScript types before you start. This part explains how the course works and what you will build. You will set up your tools and learn how to get the most from each lesson.
TypeScript course
Additional
About the Author: UI.dev (Tyler McGinnis)
UI.dev (formerly tylermcginnis.com) is the online course platform of Tyler McGinnis, a US developer who has been publishing React and JavaScript educational material continuously since 2014. The platform was one of the earliest dedicated React-tutorial sources and remains widely cited for the depth of its long-form courses on JavaScript fundamentals and the React ecosystem.
Course material covers React (including modern hooks-based patterns and Next.js), modern JavaScript (the canonical Modern JavaScript course), Firebase, GraphQL, Redux, TypeScript with React, and the algorithm / data-structure interview prep track. The teaching style is unusually rigorous about the language fundamentals underneath the framework material — Tyler's Modern JavaScript course in particular is a classic of the genre.
The CourseFlix listing under this source carries over 15 UI.dev / Tyler McGinnis courses spanning that range. Material is paid; UI.dev runs on per-course or membership pricing on the original platform.
Watch Online 76 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Introduction, Philosophy, and Tips Demo | 03:22 | |
| 2 | Why TypeScript? | 05:34 | |
| 3 | JavaScript Types | 08:57 | |
| 4 | Basic TypeScript Configuration | 06:49 | |
| 5 | Implicit Type Checking | 04:15 | |
| 6 | Adding Type Annotations | 05:47 | |
| 7 | Typing Function Declarations | 08:42 | |
| 8 | (Practice) Type Annotations | 00:39 | |
| 9 | (Solution) Type Annotations | 02:31 | |
| 10 | `any` and `unknown` types | 05:27 | |
| 11 | Interfaces | 11:07 | |
| 12 | (Practice) Interfaces | 00:34 | |
| 13 | (Solution) Interfaces | 02:24 | |
| 14 | Enum and Tuple Types | 09:55 | |
| 15 | Void and Never Types | 03:05 | |
| 16 | `type` aliases | 04:35 | |
| 17 | Union Types | 04:41 | |
| 18 | Intersection Types | 02:50 | |
| 19 | Literal Types | 02:39 | |
| 20 | (Practice) Union & Literal Types | 01:25 | |
| 21 | (Solution) Union & Literal Types | 02:54 | |
| 22 | (Project) Starting Template | 02:46 | |
| 23 | (Project) Adding Initial Types | 02:49 | |
| 24 | (Project) Cell Event Handler | 01:49 | |
| 25 | (Project) Win Condition | 08:20 | |
| 26 | Class Definition | 07:51 | |
| 27 | Modifiers | 08:42 | |
| 28 | (Practice) Classes | 01:48 | |
| 29 | (Solution) Classes | 03:24 | |
| 30 | TypeScript Operators | 06:59 | |
| 31 | (Bonus) Advanced Function Typing | 03:19 | |
| 32 | Common Type Guards | 08:35 | |
| 33 | Handling null and undefined | 06:48 | |
| 34 | (Practice) Narrowing Types | 00:29 | |
| 35 | (Solution) Narrowing Types | 05:29 | |
| 36 | (Bonus) Structural vs Nominal Typing | 06:55 | |
| 37 | Discriminating Unions | 02:31 | |
| 38 | (Practice) Discriminating Unions | 01:03 | |
| 39 | (Solution) Discriminating Unions | 01:47 | |
| 40 | Assertion Signatures | 06:59 | |
| 41 | User Defined Type Guards | 05:42 | |
| 42 | (Practice) User Defined Type Guards | 00:33 | |
| 43 | (Solution) User Defined Type Guards | 02:27 | |
| 44 | Generics | 12:41 | |
| 45 | (Bonus) Zustand Implementation | 11:11 | |
| 46 | (Practice) Generics | 00:44 | |
| 47 | (Solution) Generics | 01:55 | |
| 48 | (Bonus) Thinking In Types | 04:34 | |
| 49 | Mapped Types | 05:31 | |
| 50 | Conditional Types | 11:00 | |
| 51 | (Practice) Utility Types | 01:10 | |
| 52 | (Solution) Utility Types | 11:17 | |
| 53 | (Bonus) ES Modules In Depth | 06:57 | |
| 54 | Modules in TypeScript | 06:14 | |
| 55 | (Bonus) TypeScript Namespaces | 03:41 | |
| 56 | Built-In Type Definitions | 03:12 | |
| 57 | (Bonus) Outputting TypeScript Definitions | 02:48 | |
| 58 | Definitely Typed and @types/ packages | 03:55 | |
| 59 | Additional TSConfig.json options | 08:36 | |
| 60 | (Bonus) How the `target` field works | 05:05 | |
| 61 | Module Resolution | 12:47 | |
| 62 | (Bonus) Configuring for Webpack Development | 04:41 | |
| 63 | (Bonus) Configuring for Babel Development | 02:50 | |
| 64 | (Bonus) Configuring for Modern Web Development | 05:17 | |
| 65 | (Bonus) Configuring for Node Development | 05:09 | |
| 66 | (Bonus) Configuring for Library Development with TSDX | 02:09 | |
| 67 | Recursive Conditional Types | 04:28 | |
| 68 | Template Literal Types | 09:48 | |
| 69 | Mapped Types Key Remapping | 06:42 | |
| 70 | Unexpected TypeScript Behavior ( | 10:48 | |
| 71 | (Bonus) Experimental Decorators | 05:33 | |
| 72 | (Project) Initial NodeJS Setup | 03:38 | |
| 73 | (Project) Static Web Server | 06:08 | |
| 74 | (Project) Multiple Routes | 04:57 | |
| 75 | (Project) Dynamic API Route | 05:23 | |
| 76 | Outro | 01:26 |
Get instant access to all 75 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionRelated courses
-
ClassicTypeScript Masterclass
By: The Net NinjaTypeScript is a strongly typed programming language built on top of JavaScript, with additional features added in - primarily the ability to add types.5h 21m5/5 -
Updated 5mo agoBuild a Full-Stack Todo App with Turborepo, tRPC, Next.js, NestJS & React Native
By: Michael GuayLearn to build a full stack todo app with TypeScript, Turborepo, tRPC, Next.js, NestJS, and React Native. You build web, backend, and mobile parts with steps.2h 47m -
Updated 2y agoFullstack Typescript with TailwindCSS and tRPC Using Modern Features of PostgreSQL
By: Fullstack.ioThis comprehensive course will equip you with the skills and knowledge to build modern full-stack applications using TypeScript, TailwindCSS, tRPC, and PostgreS4h 54m