Starting and Stopping an Angular Project 
  Updating a Component Template 
  Angular vs JavaScript Design Patterns 
  Tracking Additional Properties 
  Generating a Random Password 
  Review on Property Binding 
  Adding Static Files to Angular 
  How Angular Creates Components 
  Tying Data to a Component 
  Accepting Data in a Child Component 
  Communicating from Parent to Child 
  Fixing Template References 
  Building Lists with NgFor 
  What We've Learned So Far 
  Conditionally Disabling Buttons 
  Multiple Directives with Ng-Container 
  Generating Custom Directives 
  Accessing Elements from a Custom Directive 
  Communicating Properties to Directives 
  Intercepting a Property Assignment 
  Custom Structural Directives 
  Context in Structural Directives 
  Implementing Lazy Loading 
  Creating a Placeholder Component 
  Reminder on Structural Directives 
  Implementing a Titled Divider 
  Grabbing Content with NgContent 
  Creating a Segment Component 
  Building a Reusable Table 
  Generating and Displaying the Table 
  Communicating Down Table Data 
  Adding Child Navigation Routes 
  Understanding Child Component Routing 
  Relative RouterLink References 
  Alternate RouterLink Syntax 
  A Reusable Tabs Component 
  Displaying a List of Statistics 
  Displaying a List of Items 
  Natural Issues with Modal Windows 
  Hiding the Modal with NgOnDestroy 
  Making the Modal Reusable 
  Listing Accordion Elements 
  Expanding the Active Element 
  Difficulties with Objects 
  Property Assignment Shortcut 
  Enabling Decorator Support 
  Combining Interfaces and Classes 
  That's a Lot of Typescript! 
  Component Design Methodology 
  Child to Parent Communication 
  Why Dependency Injection is Useful 
  Seeing the Request's Response 
  More Parent to Child Communication 
  Reactive Forms vs Template Forms 
  Binding a FormGroup to a Form 
  Finding Validation Errors 
  Showing and Hiding Validation Messages 
  Changing Styling on Validation Errors 
  Hijacking Form Control Values 
  Inserting Extra Characters 
  Using a Library for Masking 
  Contacting the Backend API 
  Cookie Based Authentication 
  Username and Password Validation 
  Writing Custom Validators 
  Connecting Custom Validators 
  Implementing Async Validators 
  Understanding Async Validators 
  Handling Errors from Async Validation 
  Fixing a Few Odds and Ends 
  Making the Signup Request 
  Cleaning up the Auth Service 
  Adding a Navigation Header 
  Maintaining Authentication State 
  A Gotcha Around the HttpClient 
  Modifying Outgoing Requests 
  Other Uses of Interceptors 
  Building the Sign In Flow 
  Showing Authentication Errors 
  Navigation on Authentication 
  Generating Inbox Components 
  Adding Email Fetching to the Service 
  Rendering a List of Emails 
  Relative Links with Router Link 
  Styling the Selected Email 
  Accessing Route Information 
  Snapshot vs Observable Route Params 
  Issues with Nested Subscribes 
  Canceling Previous Email Requests 
  Reusable Data Fetching with Resolvers 
  Communicating Data Out of a Resolver 
  Error Handling with Resolvers 
  Component Reuse in Email Creation 
  Some More Modal Implementation 
  Where to Place the Modal? 
  Toggling Modal Visibility 
  Providing a Form Default Values 
  Displaying Textarea instead of Text Input 
  Quick Bug Fix! (Final Lecture) 
  Type Annotations and Inference 
  Annotations and Variables 
  Object Literal Annotations 
  Annotations Around Functions 
  When Inference Doesn't Work 
  Annotations Around Functions 
  Inference Around Functions 
  Annotations for Anonymous Functions 
  Destructuring with Annotations 
  Fixing Annotations With Interfaces 
  Code Reuse with Interfaces 
  General Plan with Interfaces 
  Updated Parcel Instructions 
  IMPORTANT Info About Faker Installation 
  Using Type Definition Files 
  Export Statements in TypeScript 
  Adding Google Maps Support 
  Required Update for New @types Library 
  Google Maps Integration with TypeScript 
  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 
  Concurrently Compilation and Execution 
  A Simple Sorting Algorithm 
  TypeScript is Really Smart 
  Seperating Swapping and Comparison 
  Sorting Abritrary Collections 
  Linked List Implementation 
  Completed Linked List Code 
  Just... One... More... Fix... 
  Integrating the Sort Method 
  Abstract Classes in Action 
  Solving All Our Issues with Abstract Classes 
  Interfaces vs Abstract Classes 
  IMPORTANT - Unfinished Application 
  Reading the Users Location 
  Geolocation in an Observable 
  Connecting the Service to a Component 
  Transforming Coordinates to Query Params 
  Generics on HTTP Requests 
  Filter MergeMap Pluck Operators 
  Map and toArray Operators 
  Accessing Data in the Template 
  Styling the Forecast Component 
  Reminder on the Share Operator 
  How to Structure Services 
  Generating the Notification Module 
  Notifications Service Design 
  More Design on Notifications 
  Building a Command Structure 
  When to Add Notifications 
  Showing Success and Errors 
  CatchError and ThrowError 
  Applying a Type to the Response 
  Calculating Pages Available 
  Wrapping the Input Subject 
  The Article List Component 
  The Shared Module Pattern 
  Parent to Child Communication 
  REMINDER - Unfinished Application