Typescript The Complete Developers Guide

Master Typescript by learning popular design patterns and building complex projects. Includes React and Express!
Typescript The Complete Developers Guide
File Size :
9.70 GB
Total length :
24h 37m



Stephen Grider


Last update




Typescript The Complete Developers Guide

What you’ll learn

Master design patterns for building large applications
Integrate Typescript into React/Redux or Express projects
Understand Composition vs Inheritance, and when to use each
Write reusable code powered by classes and interfaces
Assemble reusable boilerplates for your own Typescript projects

Typescript The Complete Developers Guide


Basic knowledge of ES2015 Javascript


Composition vs Inheritance? You’ll understand it.  Build your own web framework? You’ll do it.  Typescript with React/Redux?  It’s here!——————–This is the best course online for mastering Typescript.Every other course online teaches you the basic syntax and features of Typescript, but only this course will show you how to apply Typescript on real projects, instructing you how to build large, successful projects through example.Typescript is a ‘super-set’ of Javascript.  That means that if you already know Javascript, you are ready to take this course.  Typescript adds in several important features to Javascript, including a type system.  This type system is designed to help you catch errors during development, rather than when you are running your code.  That means you’ll be twice as productive by catching bugs earlier in development.  But besides the type system, Typescript also provides several tools for structuring large codebases and writing truly reusable code.Mastering Typescript by reading the documentation alone is challenging.  Although you might know what a ‘typed array’ or an ‘interface’ is, the documentation (and other courses!) don’t show you where to use this features, or how to use them effectively.  The goal of this course is to help you understand why each feature of Typescript exists, and exactly where to use them.Top companies are hungry for Typescript developers.  Some of the largest web apps today are being built with Typescript.  Employers are scrambling to find engineers who are fluent with this cutting edge system.  Solid knowledge of Typescript will make you far more employable, by giving you a unique skill that few other engineers possess. Planning on building your own apps?  Using Typescript will help you structure your project correctly from day one, ensuring that you won’t be crushed under technical debt at some critical stage of your company.  In this course, you’ll learn how to write reusable code, with a tremendous emphasis on leveraging classes and interfaces to make swappable ‘widgets’.  You will be able to reconfigure your apps on the fly to build wildly different features with only a minimum amount of effortLearn from someone who has worked on one of the largest Typescript projects around. On professional projects of my own, I have developed plugins for an open-source, browser-based code editor called Theia.  The Theia project is absolutely gargantuan in scale, encompassing hundreds of thousands of lines of code, all written in Typescript.  This project works only thanks to the power of Typescript.But don’t just take my word for it – check out the reviews for this course! You’ll see that other engineers, just like yourself, have had great success and acquired a new understanding of how to build scalable web applications.——————–There is just too much content in this course to summarize in a few short words, but here is a partial listing of the different skills you’ll master:Understand why Composition vs Inheritance is the most mis-understood topic in the Javascript communityMaster the fundamental features of Typescript by working on real world projectsWe’ll build a custom front-end framework from scratch that you can use in place of React or Angular on your own personal projectsComprehend the complex interplay between classes and interfaces, and why these two pieces of Typescript enable you to build incredibly reusable codeDive deeper into Typescript with decorators, which we’ll use to build a custom integration between Typescript and ExpressStructure your React and Redux applications more confidently by understanding how to couple them with TypescriptSkip the documentation for third party libraries by fluently reading type definition filesLearn just how smart Typescript is by experiencing how deeply it analyzes your code for errorsI learned Typescript years ago by hard trial-and-error.  Now you can learn at 5x the speed I did.  This is the course that I wish I had when I first got started with Typescript.


Section 1: Getting Started with Typescript

Lecture 1 How to Get Help

Lecture 2 Join Our Community!

Lecture 3 Course Resources

Lecture 4 Typescript Overview

Lecture 5 Environment Setup

Lecture 6 Important Axios Version Information

Lecture 7 A First App

Lecture 8 Executing Typescript Code

Lecture 9 One Quick Change

Lecture 10 Catching Errors with Typescript

Lecture 11 Catching More Errors!

Section 2: What is a Type System?

Lecture 12 Do Not Skip – Course Overview

Lecture 13 Types

Lecture 14 More on Types

Lecture 15 Examples of Types

Lecture 16 Where Do We Use Types?

Section 3: Type Annotations in Action

Lecture 17 Type Annotations and Inference

Lecture 18 Annotations with Variables

Lecture 19 Object Literal Annotations

Lecture 20 Annotations Around Functions

Lecture 21 Understanding Inference

Lecture 22 The ‘Any’ Type

Lecture 23 Fixing the ‘Any’ Type

Lecture 24 Delayed Initialization

Lecture 25 When Inference Doesn’t Work

Section 4: Annotations With Functions and Objects

Lecture 26 More on Annotations Around Functions

Lecture 27 Inference Around Functions

Lecture 28 Annotations for Anonymous Functions

Lecture 29 Void and Never

Lecture 30 Destructuring with Annotations

Lecture 31 Annotations Around Objects

Section 5: Mastering Typed Arrays

Lecture 32 Arrays in Typescript

Lecture 33 Why Typed Arrays?

Lecture 34 Multiple Types in Arrays

Lecture 35 When to Use Typed Arrays

Section 6: Tuples in Typescript

Lecture 36 Tuples in Typescript

Lecture 37 Tuples in Action

Lecture 38 Why Tuples?

Section 7: The All-Important Interface

Lecture 39 Interfaces

Lecture 40 Long Type Annotations

Lecture 41 Fixing Long Annotations with Interfaces

Lecture 42 Syntax Around Interfaces

Lecture 43 Functions in Interfaces

Lecture 44 Code Reuse with Interfaces

Lecture 45 General Plan with Interfaces

Section 8: Building Functionality with Classes

Lecture 46 Classes

Lecture 47 Basic Inheritance

Lecture 48 Instance Method Modifiers

Lecture 49 Fields in Classes

Lecture 50 Fields with Inheritance

Lecture 51 Where to Use Classes

Section 9: Design Patterns with Typescript

Lecture 52 Updated Parcel Instructions

Lecture 53 App Overview

Lecture 54 Bundling with Parcel

Lecture 55 Project Structure

Lecture 56 IMPORTANT Info About Faker Installation

Lecture 57 Generating Random Data

Lecture 58 Type Definition Files

Lecture 59 Using Type Definition Files

Lecture 60 Export Statements in Typescript

Lecture 61 Defining a Company

Lecture 62 Note on Generating an API Key

Lecture 63 Adding Google Maps Support

Lecture 64 Required Update for New @types Library

Lecture 65 Google Maps Integration

Lecture 66 Exploring Type Definition Files

Lecture 67 Hiding Functionality

Lecture 68 Why Use Private Modifiers? Here’s Why

Lecture 69 Adding Markers

Lecture 70 Duplicate Code

Lecture 71 One Possible Solution

Lecture 72 Restricting Access with Interfaces

Lecture 73 Implicit Type Checks

Lecture 74 Showing Popup Windows

Lecture 75 Updating Interface Definitions

Lecture 76 Optional Implements Clauses

Lecture 77 App Wrapup

Section 10: More on Design Patterns

Lecture 78 App Overview

Lecture 79 Configuring the TS Compiler

Lecture 80 Concurrent Compilation and Execution

Lecture 81 A Simple Sorting Algorithm

Lecture 82 Sorter Scaffolding

Lecture 83 Sorting Implementation

Lecture 84 Two Huge Issues

Lecture 85 Typescript is Really Smart

Lecture 86 Type Guards

Lecture 87 Why is This Bad?

Lecture 88 Extracting Key Logic

Lecture 89 Separating Swapping and Comparison

Lecture 90 The Big Reveal

Lecture 91 Interface Definition

Lecture 92 Sorting Arbitrary Collections

Lecture 93 Linked List Implementation

Lecture 94 Completed Linked List Code

Lecture 95 Just…One…More…Fix…

Lecture 96 Integrating the Sort Method

Lecture 97 Issues with Inheritance

Lecture 98 Abstract Classes

Lecture 99 Why Use Abstract Classes?

Lecture 100 Solving All Issues with Abstract Classes

Lecture 101 Interfaces vs Abstract Classes

Section 11: Reusable Code

Lecture 102 Project Overview

Lecture 103 Project Setup

Lecture 104 CSV Data

Lecture 105 Type Definition Files – Again!

Lecture 106 Reading CSV Files

Lecture 107 Running an Analysis

Lecture 108 Losing Dataset Context

Lecture 109 Using Enums

Lecture 110 When to Use Enums

Lecture 111 Extracting CSV Reading

Lecture 112 Data Types

Lecture 113 Converting Date Strings to Dates

Lecture 114 Converting Row Values

Lecture 115 Type Assertions

Lecture 116 Describing a Row with a Tuple

Lecture 117 Not Done with FileReader Yet!

Lecture 118 Understanding Refactor #1

Lecture 119 Creating Abstract Classes

Lecture 120 Variable Types with Generics

Lecture 121 Applying a Type to a Generic Class

Lecture 122 Alternate Refactor

Lecture 123 Interface-Based Approach

Lecture 124 Extracting Match References – Again!

Lecture 125 Transforming Data

Lecture 126 Updating Reader References

Lecture 127 Inheritance vs Composition

Lecture 128 More on Inheritance vs Composition

Lecture 129 A Huge Misconception Around Composition

Lecture 130 Goal Moving Forward

Lecture 131 A Composition-Based Approach

Lecture 132 Implementing an Analyzer Class

Lecture 133 Building the Reporter

Lecture 134 Putting It All Together

Lecture 135 Generating HTML Reports

Lecture 136 One Last Thing!

Lecture 137 Oops, My Bad

Lecture 138 App Wrapup

Section 12: Advanced Generics

Lecture 139 More on Generics

Lecture 140 Type Inference with Generics

Lecture 141 Function Generics

Lecture 142 Generic Constraints

Section 13: Let’s Build a Web Framework

Lecture 143 App Overview

Lecture 144 Parcel Setup

Lecture 145 Framework Structure

Lecture 146 Designing the User

Lecture 147 Retrieving User Properties

Lecture 148 Optional Interface Properties

Lecture 149 An Eventing System

Lecture 150 Listener Support

Lecture 151 Storing Event Listeners

Lecture 152 Dynamic Array Creation

Lecture 153 Triggering Event Callbacks

Lecture 154 Adding JSON Server

Lecture 155 Understanding REST Conventions

Lecture 156 Adding Fetch Functionality

Lecture 157 Successfully Fetching Model Data

Lecture 158 Saving User Data

Lecture 159 Refactoring with Composition

Lecture 160 Re-Integrating Eventing

Lecture 161 Composition with Nested Objects

Lecture 162 A More Complicated Extraction

Lecture 163 Options for Adapting Sync

Lecture 164 Refactoring Sync

Lecture 165 Generic Constraints Around Sync

Lecture 166 Connecting Sync Back to User

Lecture 167 Optional Properties

Lecture 168 Extracting an Attributes Class

Lecture 169 The Get Method’s Shortcoming

Lecture 170 Two Important Rules

Lecture 171 An Advanced Generic Constraint

Lecture 172 Re-Integrating Attributes

Lecture 173 Composition is Delegation

Lecture 174 Reminder on Accessors

Lecture 175 Passthrough Methods

Lecture 176 A Context Issue

Lecture 177 Setting Data While Triggering

Lecture 178 Fetching User Data

Lecture 179 Saving Data

Lecture 180 Composition vs Inheritance…Again!

Lecture 181 Extracting a Model Class

Lecture 182 Extending the User

Lecture 183 Final User Refactor

Lecture 184 Model Wrapup

Lecture 185 Shortened Passthrough Methods

Lecture 186 Users Collection

Lecture 187 Implementing a Users Collection

Lecture 188 Parsing User JSON

Lecture 189 Generic User Collection

Lecture 190 A Class Method for Collections

Lecture 191 View Classes

Lecture 192 Building the UserForm

Lecture 193 The UserForm’s Render Method

Lecture 194 Rendering HTML

Lecture 195 Defining an Events Map

Lecture 196 Binding Event Handlers

Lecture 197 Adding Model Properties

Lecture 198 Binding Events on Class Name

Lecture 199 Adding Methods to the User

Lecture 200 Re-Rendering on Model Change

Lecture 201 Reading Input Text

Lecture 202 Strict Null Checks

Lecture 203 Reusable View Logic

Lecture 204 Extracting a View Class

Lecture 205 Extending with Generic Constraints

Lecture 206 Saving Data From a View

Lecture 207 UserEdit and UserShow

Lecture 208 Nesting with Regions

Lecture 209 Mapping Regions

Lecture 210 Testing Region Mapping

Lecture 211 View Nesting

Lecture 212 Collection Views

Lecture 213 CollectionView Implementation

Lecture 214 App Wrapup

Section 14: Express + Typescript Integration

Lecture 215 Typescript with JS Libraries

Lecture 216 App Overview

Lecture 217 Project Setup

Lecture 218 Basic Routes with Express

Lecture 219 Using an Express Router

Lecture 220 Parsing Form Bodies

Lecture 221 Why Doesn’t Express Play Nicely with TS?

Lecture 222 Issues with Type Definition Files

Lecture 223 Dealing with Poor Type Defs

Lecture 224 Wiring Up Sessions

Lecture 225 Checking Login Status

Lecture 226 Logging Out

Lecture 227 Protecting Routes

Lecture 228 A Closer Integration

Lecture 229 The Refactoring Process

Lecture 230 Prototypes Reminder

Section 15: Decorators

Lecture 231 Note about target environment in tsconfig

Lecture 232 Decorators in Typescript

Lecture 233 Details on Decorators

Lecture 234 Property Descriptors

Lecture 235 Wrapping Methods with Descriptors

Lecture 236 Decorator Factories

Lecture 237 Decorators Around Properties

Lecture 238 More on Decorators

Section 16: Advanced Express and TS Integration

Lecture 239 A Quick Disclaimer

Lecture 240 Project Overview

Lecture 241 Why is This Hard?

Lecture 242 Solution Overview

Lecture 243 Note about target environment in tsconfig

Lecture 244 Basics of Metadata

Lecture 245 Practical Metadata

Lecture 246 Let’s Refactor!

Lecture 247 The ‘Get’ Decorator

Lecture 248 The Controller Decorator

Lecture 249 Proof of Concept

Lecture 250 A Few Fixups

Lecture 251 Defining a RouteBinder

Lecture 252 Closed Method Sets with Enums

Lecture 253 Metadata Keys

Lecture 254 The ‘Use’ Decorator

Lecture 255 Testing Use

Lecture 256 Body Validators

Lecture 257 Automated Validation

Lecture 258 Testing Automated Validation

Lecture 259 Fixing Routes

Lecture 260 Using Property Descriptors for Type Checking

Lecture 261 App Wrapup

Section 17: React and Redux with Typescript

Lecture 262 React and Redux Overview

Lecture 263 App Overview

Lecture 264 Generating the App

Lecture 265 Simple Components

Lecture 266 Interfaces with Props

Lecture 267 Handling Component State

Lecture 268 Confusing Component State!

Lecture 269 Functional Components

Lecture 270 Redux Setup

Lecture 271 Action Creators with Typescript

Lecture 272 Action Types Enum

Lecture 273 The Generic Dispatch Function

Lecture 274 A Reducer with Enums

Lecture 275 Validating Store Structure

Lecture 276 Connecting a Component to Redux

Lecture 277 Rendering a List

Lecture 278 Adding in Delete Functionality

Lecture 279 Breaking Out Action Creators

Lecture 280 Expressing Actions as Type Union

Lecture 281 Type Guards in Reducers

Lecture 282 Wiring up deleteToDo Action

Lecture 283 Again, Type Definition Files

Lecture 284 Tracking Loading with Component State

Lecture 285 App Wrapup

Section 18: Extras

Lecture 286 Bonus!

Any Javascript developer looking to understand how to structure large codebases

Course Information:

Udemy | English | 24h 37m | 9.70 GB
Created by: Stephen Grider

You Can See More Courses in the Developer >> Greetings from CourseDown.com

New Courses

Scroll to Top