Skip to main content
CourseFlix

React & TypeScript - The Practical Guide

7h 22m 54s
English
Paid

TypeScript is an amazing technology that helps developers write better code with less errors - simply because it let's you catch & fix type-related errors whilst writing the code (instead of when testing the application).

But using TypeScript with React can sometimes be tricky. Especially when building more complex, dynamic components, defining the right types can be challenging.

That's why I built this course!

Because this course will teach you how to use TypeScript with React - and, of course, the course will introduce you to all the core concepts & patterns you need to work with components, state, side effects & more in a type-safe way!

This course will:

  • Teach you WHY using TypeScript in your React projects might be a good idea
  • Introduce you to the key TypeScript concepts you'll need - when working with React & in general
  • Get you started with using TypeScript with React - for components, state & more
  • Explore more advanced, complex patterns & examples
  • Help you with building dynamic or even polymorphic components in a type-safe way
  • Teach you how to use TypeScript with React's Context API
  • Explore how you can enhance code used with useReducer() with help of TypeScript
  • Cover data fetching & useEffect() with TypeScript
  • Use the popular Redux library in a type-safe way
  • Build or improve multiple demo projects so that can apply your knowledge

By the end of the course, you'll be able to use TypeScript in your own (future) React projects and write better, more type-safe code.

Additional

https://github.com/academind/react-typescript-course-resources

About the Author: Academind Pro (Maximilian Schwarzmüller)

Academind Pro (Maximilian Schwarzmüller) thumbnail

Academind is the teaching brand of Maximilian Schwarzmüller (Max) and Manuel Lorenz, two German developers whose Udemy catalog has become one of the largest single-instructor presences on that platform. Max in particular is widely cited as one of the clearest teachers of the JavaScript framework landscape — his Angular, React, Vue, and Node.js courses have collectively taught millions of students.

The Academind Pro platform extends beyond Udemy with deeper, more comprehensive courses aimed at developers building real applications rather than picking up syntax. Course material covers the full modern web stack: React (including Next.js), Vue, Angular, Node.js, NestJS, TypeScript, Docker, AWS, React Native, Flutter, and the broader full-stack JavaScript ecosystem.

The CourseFlix listing under this source carries over 25 Academind Pro courses spanning that range. Material is paid; Academind Pro runs on per-course pricing on the original platform. Courses are taught in Max's signature thorough, build-an-application-with-me style — long-form, deeply project-based, and continuously updated as the underlying frameworks evolve.

Watch Online 89 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 89 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Welcome To The Course!
All Course Lessons (89)
#Lesson TitleDurationAccess
1
Welcome To The Course! Demo
01:27
2
Why React & TypeScript?
01:57
3
About The Course & Course Content
01:47
4
How To Get The Most Out Of The Course
03:00
5
Creating & Using React + TypeScript Projects
01:01
6
Module Introduction
01:14
7
TypeScript Setup & Using TypeScript
03:02
8
Working with Types: Type Inference & Explicit Type Annotations
07:47
9
Basic Primitive Types
01:08
10
Invoking The TypeScript Compiler
03:14
11
Combining Types Union Types (Alternative Types)
02:22
12
Working with Object Types
05:40
13
Working with Array Types
04:00
14
Adding Types to Functions - Parameter & Return Value Types
05:05
15
Defining Function Types
03:29
16
Creating Custom Types / Type Aliases
03:58
17
Defining Object Types with Interfaces
03:07
18
Interfaces vs Custom Types
04:25
19
Being Specific With Literal Types
04:22
20
Merging Types
03:06
21
Adding Type Guards
03:43
22
Making Sense Of Generic Types
12:21
23
Summary
00:36
24
Module Introduction
01:14
25
Creating a React + TypeScript Project
06:32
26
Understanding the Role of tsconfig.json
05:05
27
Building a First Component & Facing a Missing Type
05:48
28
Defining Component Props Types
04:06
29
Storing Props Types as a Custom Type or Interface
02:05
30
Defining a Type for Props with "children"
07:03
31
Another Way Of Typing Components
03:19
32
Exercise: Creating a Header Component
06:12
33
Using useState() and TypeScript
06:40
34
Working with State & Outputting State-based Values
05:50
35
Another Exercise & Reusing Types Across Files
07:32
36
Passing Functions as Values - In A Type-Safe Way
10:08
37
Handling & Typing Events
08:01
38
Working with Generic Event Types
04:25
39
Using useRef() with TypeScript
08:51
40
Handling User Input In A Type-Safe Way
05:09
41
Summary
01:43
42
Module Introduction
01:32
43
Building a More Dynamic & Flexible Component
11:09
44
Problem: Flexible Components With Required Prop Combinations
06:20
45
Solution: Building Components with Discriminated Unions
06:07
46
Onwards To A New Project
01:15
47
Building a Basic Wrapper Component
04:57
48
Building Better Wrapper Components with ComponentPropsWithoutRef
07:26
49
Building a Wrapper Component That Renders Different Elements
07:06
50
Working with Type Predicates & Facing TypeScript Limitations
10:52
51
Building a Basic Polymorphic Component
05:27
52
Building a Better Polymorphic Component with Generics
10:07
53
Using forwardRef with TypeScript
07:33
54
Building Another Wrapper Component (Custom Form Component)
03:46
55
Sharing Logic with "unknown" & Type Casting
10:11
56
Exposing Component APIs with useImperativeHandle (with TypeScript)
09:59
57
Summary
00:58
58
The Starting Project
01:40
59
Module Introduction
01:00
60
Creating a Context & Fitting Types
07:08
61
Creating a Type-Safe Provider Component
04:41
62
Accessing Context Type-Safe With A Custom Hook
06:34
63
Getting Started with useReducer() & TypeScript
03:16
64
A Basic Reducer Function & A Basic Action Type
06:29
65
Changing State via the Reducer Function
02:44
66
Using Better Action Types
05:48
67
Wiring Everything Up & Finishing the App
07:27
68
Module Introduction
00:47
69
Creating a First Side Effect
04:46
70
Using useEffect() with TypeScript
04:32
71
Managing An Interval With Refs & The Effect Cleanup Function
08:54
72
useEffect() & Its Dependencies
05:46
73
Onwards to Data Fetching!
02:11
74
Building a Utility "get" Function with TypeScript
07:01
75
Fetching & Transforming Data
13:28
76
Handling Loading & Error States
08:15
77
The Starting Project
02:59
78
Module Introduction
01:05
79
Redux Setup
01:19
80
Creating a Redux Store & A First Slice
05:18
81
Setting a State Type
02:41
82
A First Reducer & Controlling the Action Payload Type
03:29
83
Adding Logic To The Reducer
06:18
84
Providing the Redux Store
02:35
85
Dispatching Actions & Adjusting the useDispatch Hook
08:26
86
Creating a Type-Safe useSelector Hook
05:16
87
Selecting & Transforming Redux Store Data
03:37
88
Finishing Touches & Summary
09:01
89
Your Task
02:04
Unlock unlimited learning

Get instant access to all 88 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Course content

89 lessons · 7h 22m 54s
Show all 89 lessons
  1. 1 Welcome To The Course! 01:27
  2. 2 Why React & TypeScript? 01:57
  3. 3 About The Course & Course Content 01:47
  4. 4 How To Get The Most Out Of The Course 03:00
  5. 5 Creating & Using React + TypeScript Projects 01:01
  6. 6 Module Introduction 01:14
  7. 7 TypeScript Setup & Using TypeScript 03:02
  8. 8 Working with Types: Type Inference & Explicit Type Annotations 07:47
  9. 9 Basic Primitive Types 01:08
  10. 10 Invoking The TypeScript Compiler 03:14
  11. 11 Combining Types Union Types (Alternative Types) 02:22
  12. 12 Working with Object Types 05:40
  13. 13 Working with Array Types 04:00
  14. 14 Adding Types to Functions - Parameter & Return Value Types 05:05
  15. 15 Defining Function Types 03:29
  16. 16 Creating Custom Types / Type Aliases 03:58
  17. 17 Defining Object Types with Interfaces 03:07
  18. 18 Interfaces vs Custom Types 04:25
  19. 19 Being Specific With Literal Types 04:22
  20. 20 Merging Types 03:06
  21. 21 Adding Type Guards 03:43
  22. 22 Making Sense Of Generic Types 12:21
  23. 23 Summary 00:36
  24. 24 Module Introduction 01:14
  25. 25 Creating a React + TypeScript Project 06:32
  26. 26 Understanding the Role of tsconfig.json 05:05
  27. 27 Building a First Component & Facing a Missing Type 05:48
  28. 28 Defining Component Props Types 04:06
  29. 29 Storing Props Types as a Custom Type or Interface 02:05
  30. 30 Defining a Type for Props with "children" 07:03
  31. 31 Another Way Of Typing Components 03:19
  32. 32 Exercise: Creating a Header Component 06:12
  33. 33 Using useState() and TypeScript 06:40
  34. 34 Working with State & Outputting State-based Values 05:50
  35. 35 Another Exercise & Reusing Types Across Files 07:32
  36. 36 Passing Functions as Values - In A Type-Safe Way 10:08
  37. 37 Handling & Typing Events 08:01
  38. 38 Working with Generic Event Types 04:25
  39. 39 Using useRef() with TypeScript 08:51
  40. 40 Handling User Input In A Type-Safe Way 05:09
  41. 41 Summary 01:43
  42. 42 Module Introduction 01:32
  43. 43 Building a More Dynamic & Flexible Component 11:09
  44. 44 Problem: Flexible Components With Required Prop Combinations 06:20
  45. 45 Solution: Building Components with Discriminated Unions 06:07
  46. 46 Onwards To A New Project 01:15
  47. 47 Building a Basic Wrapper Component 04:57
  48. 48 Building Better Wrapper Components with ComponentPropsWithoutRef 07:26
  49. 49 Building a Wrapper Component That Renders Different Elements 07:06
  50. 50 Working with Type Predicates & Facing TypeScript Limitations 10:52
  51. 51 Building a Basic Polymorphic Component 05:27
  52. 52 Building a Better Polymorphic Component with Generics 10:07
  53. 53 Using forwardRef with TypeScript 07:33
  54. 54 Building Another Wrapper Component (Custom Form Component) 03:46
  55. 55 Sharing Logic with "unknown" & Type Casting 10:11
  56. 56 Exposing Component APIs with useImperativeHandle (with TypeScript) 09:59
  57. 57 Summary 00:58
  58. 58 The Starting Project 01:40
  59. 59 Module Introduction 01:00
  60. 60 Creating a Context & Fitting Types 07:08
  61. 61 Creating a Type-Safe Provider Component 04:41
  62. 62 Accessing Context Type-Safe With A Custom Hook 06:34
  63. 63 Getting Started with useReducer() & TypeScript 03:16
  64. 64 A Basic Reducer Function & A Basic Action Type 06:29
  65. 65 Changing State via the Reducer Function 02:44
  66. 66 Using Better Action Types 05:48
  67. 67 Wiring Everything Up & Finishing the App 07:27
  68. 68 Module Introduction 00:47
  69. 69 Creating a First Side Effect 04:46
  70. 70 Using useEffect() with TypeScript 04:32
  71. 71 Managing An Interval With Refs & The Effect Cleanup Function 08:54
  72. 72 useEffect() & Its Dependencies 05:46
  73. 73 Onwards to Data Fetching! 02:11
  74. 74 Building a Utility "get" Function with TypeScript 07:01
  75. 75 Fetching & Transforming Data 13:28
  76. 76 Handling Loading & Error States 08:15
  77. 77 The Starting Project 02:59
  78. 78 Module Introduction 01:05
  79. 79 Redux Setup 01:19
  80. 80 Creating a Redux Store & A First Slice 05:18
  81. 81 Setting a State Type 02:41
  82. 82 A First Reducer & Controlling the Action Payload Type 03:29
  83. 83 Adding Logic To The Reducer 06:18
  84. 84 Providing the Redux Store 02:35
  85. 85 Dispatching Actions & Adjusting the useDispatch Hook 08:26
  86. 86 Creating a Type-Safe useSelector Hook 05:16
  87. 87 Selecting & Transforming Redux Store Data 03:37
  88. 88 Finishing Touches & Summary 09:01
  89. 89 Your Task 02:04

Related courses

  • React Query thumbnail

    React Query

    Sources: UI.dev (Tyler McGinnis)
    Learn React Query with the official React Query course. WANT TO SKIP THE DOCS? There s an easier way to master React Query.
    7 hours 1 minute 30 seconds 5 / 5
  • MobX In Depth With React(Hooks+TypeScript) thumbnail

    MobX In Depth With React(Hooks+TypeScript)

    Sources: Udemy
    This is the most extensive course about MobX you will find online, After a few years of using MobX, I'm really passionate about it and really love it, I decided
    2 hours 25 minutes 54 seconds
  • TypeScript Pro Essentials thumbnail

    TypeScript Pro Essentials

    Sources: Matt Pocock
    You've tested the waters with TypeScript, but deep down you know that you're missing something. You've heard that TypeScript is the answer to all the prob...
    11 hours 2 minutes 12 seconds 5 / 5

Frequently asked questions

What is React & TypeScript - The Practical Guide about?
TypeScript is an amazing technology that helps developers write better code with less errors - simply because it let's you catch & fix type-related errors whilst writing the code (instead of when testing the application). But using…
Who teaches React & TypeScript - The Practical Guide?
React & TypeScript - The Practical Guide is taught by Academind Pro (Maximilian Schwarzmüller). You can find more courses by this instructor on the corresponding source page.
How long is React & TypeScript - The Practical Guide?
React & TypeScript - The Practical Guide contains 89 lessons with a total runtime of 7 hours 22 minutes. All lessons are available to watch online at your own pace.
Is React & TypeScript - The Practical Guide free to watch?
React & TypeScript - The Practical Guide is part of CourseFlix's premium catalog. A CourseFlix subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch React & TypeScript - The Practical Guide online?
React & TypeScript - The Practical Guide is available to watch online on CourseFlix at https://courseflix.net/course/react-typescript-the-practical-guide. The page hosts every lesson with the integrated video player; no download is required.