Type Annotations and Inference
Annotations with Variables
Object Literal Annotations
Annotations Around Functions
When Inference Doesn't Work
More on Annotations Around Functions
Inference Around Functions
Annotations for Anonymous Functions
Destructuring with Annotations
Annotations Around Objects
Updated Parcel Instructions
IMPORTANT Info About Faker Installation
Using Type Definition Files
Export Statements in Typescript
Note on Generating an API Key
Adding Google Maps Support
Required Update for New @types Library
Exploring Type Definition Files
Why Use Private Modifiers? Here's Why
Restricting Access with Interfaces
Updating Interface Definitions
Optional Implements Clauses
Configuring the TS Compiler
Concurrent Compilation and Execution
A Simple Sorting Algorithm
Typescript is Really Smart
Separating Swapping and Comparison
Sorting Arbitrary Collections
Linked List Implementation
Completed Linked List Code
Just...One...More...Fix...
Integrating the Sort Method
Why Use Abstract Classes?
Solving All Issues with Abstract Classes
Interfaces vs Abstract Classes
Type Definition Files - Again!
Converting Date Strings to Dates
Describing a Row with a Tuple
Not Done with FileReader Yet!
Understanding Refactor #1
Creating Abstract Classes
Variable Types with Generics
Applying a Type to a Generic Class
Extracting Match References - Again!
Updating Reader References
Inheritance vs Composition
More on Inheritance vs Composition
A Huge Misconception Around Composition
A Composition-Based Approach
Implementing an Analyzer Class
Reminder on Using Parcel with npx
Retrieving User Properties
Optional Interface Properties
Triggering Event Callbacks
Small Update for JSON server and Parcel Start Script
Understanding REST Conventions
Adding Fetch Functionality
Successfully Fetching Model Data
Refactoring with Composition
Composition with Nested Objects
A More Complicated Extraction
Options for Adapting Sync
Generic Constraints Around Sync
Connecting Sync Back to User
No overload matches this call - this.data
Extracting an Attributes Class
The Get Method's Shortcoming
An Advanced Generic Constraint
Re-Integrating Attributes
Composition is Delegation
Setting Data While Triggering
Composition vs Inheritance...Again!
Shortened Passthrough Methods
Implementing a Users Collection
A Class Method for Collections
The UserForm's Render Method
Binding Events on Class Name
Adding Methods to the User
Re-Rendering on Model Change
Type 'K' does not satisfy the constraint 'HasId'.ts
Extending with Generic Constraints
CollectionView Implementation
Typescript with JS Libraries
Basic Routes with Express
Why Doesn't Express Play Nicely with TS?
Issues with Type Definition Files
Dealing with Poor Type Defs
Note about target environment in tsconfig
ES2016 Fix for Controller Decorator
Closed Method Sets with Enums
Testing Automated Validation
Using Property Descriptors for Type Checking
ReactDOM warning with React v18
Confusing Component State!
createStore Strikethrough in Code Editor
Action Creators with Typescript
The Generic Dispatch Function
Validating Store Structure
Connecting a Component to Redux
Adding in Delete Functionality
Breaking Out Action Creators
Expressing Actions as Type Union
Wiring up deleteToDo Action
Again Type Definition Files
Tracking Loading with Component State
Generating TypeScript Enabled Projects
ReactDOM warning with React v18
File Extensions and Starting Up React
The Big Difference with Props
Explicit Component Type Annotations
Property 'children' does not exist
Annotations with Children
Type Inference with State
Quick Finish to the Example
Typing Standalone Event Handlers
Handling Drag Events Too!
Updated Install Command and Versions for React 18
Annotating the Return Type
Separate Interfaces for Actions
Applying Action Interfaces
Adding an Action Type Enum
A Better Way to Organize Code
Small Update for Try / Catch Block
Applying Typings to Dispatch
createStore Strikethrough in Code Editor
TypeScript Error When Dispatching Action
Calling an Action Creator
Awkward Typings Around React-Redux
Creating a Typed Selector
Quick Wrapup - Final Lecture