React & Typescript - The Practical Guide

Posted By: ELK1nG

React & Typescript - The Practical Guide
Published 10/2023
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.86 GB | Duration: 7h 33m

Build type-safe React apps & use TypeScript to enhance your components, state management, Redux & side effects code.

What you'll learn

Learn how to build React apps with TypeScript

Get a structured introduction to TypeScript

Use both basic & advanced TypeScript concepts

Build dynamic & highly flexible components with React & TypeScript

Build advanced & highly dynamic components in a type-safe way

Use TypeScript with React's Context API & useReducer() Hook

Manage state and events with React and TypeScript

Use TypeScript with Redux for type-safe global state management

Requirements

Basic React knowledge of core concepts (components, JSX, state) is needed

NO prior TypeScript knowledge is required

Description

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 ideaIntroduce you to the key TypeScript concepts you'll need - when working with React & in generalGet you started with using TypeScript with React - for components, state & moreExplore more advanced, complex patterns & examplesHelp you with building dynamic or even polymorphic components in a type-safe wayTeach you how to use TypeScript with React's Context APIExplore how you can enhance code used with useReducer() with help of TypeScriptCover data fetching & useEffect() with TypeScriptUse the popular Redux library in a type-safe wayBuild or improve multiple demo projects so that can apply your knowledgeBy 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.Course prerequisites:NO prior TypeScript knowledge is required - though basic knowledge will help (but the course includes an introduction module)Basic React knowledge (components, JSX, state) IS required - more advanced concepts will be explained though

Overview

Section 1: Introduction

Lecture 1 Welcome To The Course!

Lecture 2 Why React & TypeScript?

Lecture 3 About The Course & Course Content

Lecture 4 How To Get The Most Out Of The Course

Lecture 5 Learning Community & Course Resources

Lecture 6 Creating & Using React + TypeScript Projects

Section 2: TypeScript Basics & Core Concepts

Lecture 7 Module Introduction

Lecture 8 TypeScript Setup & Using TypeScript

Lecture 9 Working with Types: Type Inference & Explicit Type Annotations

Lecture 10 Basic Primitive Types

Lecture 11 Invoking The TypeScript Compiler

Lecture 12 Combining Types Union Types (Alternative Types)

Lecture 13 Working with Object Types

Lecture 14 Working with Array Types

Lecture 15 Adding Types to Functions - Parameter & Return Value Types

Lecture 16 Defining Function Types

Lecture 17 Creating Custom Types / Type Aliases

Lecture 18 Defining Object Types with Interfaces

Lecture 19 Interfaces vs Custom Types

Lecture 20 Being Specific With Literal Types

Lecture 21 Merging Types

Lecture 22 Adding Type Guards

Lecture 23 Type Guards & Type Narrowing - A Closer Look

Lecture 24 Making Sense Of Generic Types

Lecture 25 Summary

Section 3: Using TypeScript with React - Essentials

Lecture 26 Module Introduction

Lecture 27 Creating a React + TypeScript Project

Lecture 28 Understanding the Role of tsconfig.json

Lecture 29 Building a First Component & Facing a Missing Type

Lecture 30 Defining Component Props Types

Lecture 31 Component Props & The Special "key" Prop

Lecture 32 Storing Props Types as a Custom Type or Interface

Lecture 33 Defining a Type for Props with "children"

Lecture 34 Another Way Of Typing Components

Lecture 35 Exercise: Creating a Header Component

Lecture 36 Using useState() and TypeScript

Lecture 37 Working with State & Outputting State-based Values

Lecture 38 Another Exercise & Reusing Types Across Files

Lecture 39 Passing Functions as Values - In A Type-Safe Way

Lecture 40 Handling & Typing Events

Lecture 41 Working with Generic Event Types

Lecture 42 Using useRef() with TypeScript

Lecture 43 Handling User Input In A Type-Safe Way

Lecture 44 Summary

Section 4: Advanced Component Types - Dynamic Components, Polymorphic Components & More

Lecture 45 Module Introduction

Lecture 46 Building a More Dynamic & Flexible Component

Lecture 47 Problem: Flexible Components With Required Prop Combinations

Lecture 48 Solution: Building Components with Discriminated Unions

Lecture 49 Onwards To A New Project

Lecture 50 Building a Basic Wrapper Component

Lecture 51 Building Better Wrapper Components with ComponentPropsWithoutRef

Lecture 52 Building a Wrapper Component That Renders Different Elements

Lecture 53 Working with Type Predicates & Facing TypeScript Limitations

Lecture 54 Building a Basic Polymorphic Component

Lecture 55 Building a Better Polymorphic Component with Generics

Lecture 56 Examples: More Component Ideas

Lecture 57 Using forwardRef with TypeScript

Lecture 58 Building Another Wrapper Component (Custom Form Component)

Lecture 59 Sharing Logic with "unknown" & Type Casting

Lecture 60 Alternative: Avoiding Type Casting with "as"

Lecture 61 Exposing Component APIs with useImperativeHandle (with TypeScript)

Lecture 62 Summary

Section 5: Advanced Type-Safe State with Context API & useReducer()

Lecture 63 Module Introduction

Lecture 64 The Starting Project

Lecture 65 Creating a Context & Fitting Types

Lecture 66 Creating a Type-Safe Provider Component

Lecture 67 Accessing Context Type-Safe With A Custom Hook

Lecture 68 Getting Started with useReducer() & TypeScript

Lecture 69 A Basic Reducer Function & A Basic Action Type

Lecture 70 Changing State via the Reducer Function

Lecture 71 Using Better Action Types

Lecture 72 Wiring Everything Up & Finishing the App

Section 6: Side Effects, useEffect() & Data Fetching with TypeScript

Lecture 73 Module Introduction

Lecture 74 Creating a First Side Effect

Lecture 75 Using useEffect() with TypeScript

Lecture 76 Managing An Interval With Refs & The Effect Cleanup Function

Lecture 77 useEffect() & Its Dependencies

Lecture 78 A Small Bug & Its Solution

Lecture 79 Onwards to Data Fetching!

Lecture 80 Building a Utility "get" Function with TypeScript

Lecture 81 Fetching & Transforming Data

Lecture 82 Alternative: Using the "zod" Library for Response Data Validation

Lecture 83 Alternative: A Generic "get" Function

Lecture 84 Handling Loading & Error States

Section 7: Using Redux with TypeScript

Lecture 85 Module Introduction

Lecture 86 The Starting Project

Lecture 87 Redux Setup

Lecture 88 Creating a Redux Store & A First Slice

Lecture 89 Setting a State Type

Lecture 90 A First Reducer & Controlling the Action Payload Type

Lecture 91 Adding Logic To The Reducer

Lecture 92 Providing the Redux Store

Lecture 93 Dispatching Actions & Adjusting the useDispatch Hook

Lecture 94 Creating a Type-Safe useSelector Hook

Lecture 95 Selecting & Transforming Redux Store Data

Lecture 96 Finishing Touches & Summary

Section 8: Practice Project: A "Book a Session" Management Application

Lecture 97 Your Task

Lecture 98 Your Task - Details

Lecture 99 Hints

Lecture 100 An Example Solution

React developers who want to improve the quality & type-safety of their codebase,TypeScript developers who want to apply their knowledge to React apps