Typescript: The Complete Developer’s Guide
-
Getting Started with TypeScript
-
What is a Type System?
-
Type Annotations in Action
-
Annotations With Functions and Objects
-
Mastering Typed Arrays
-
Tuples in Typescript
-
The All-Important Interface
-
Building Functionality with Classes
-
Design Patterns with TypescriptUpdated Parcel InstructionsApp Overview0sBundling with Parcel0sProject Structure0sIMPORTANT Info About Faker InstallationGenerating Random Data0sType Definition Files0sUsing Type Definition Files0sExport Statements in Typescript0sDefining a Company0sNote on Generating an API KeyAdding Google Maps Support0sRequired Update for New @types LibraryGoogle Maps Integration0sExploring Type Definition Files0sHiding Functionality0sWhy Use Private Modifiers? Here’s Why0sAdding Markers0sDuplicate Code0sOne Possible Solution0sRestricting Access with Interfaces0sImplicit Type Checks0sShowing Popup Windows0sUpdating Interface Definitions0sOptional Implements Clauses0sApp Wrapup0s
-
More on Design PatternsApp Overview0sConfiguring the TS Compiler0sConcurrent Compilation and Execution0sA Simple Sorting Algorithm0sSorter Scaffolding0sSorting Implementation0sTwo Huge Issues0sTypescript is Really Smart0sType Guards0sWhy is This Bad?0sExtracting Key Logic0sSeparating Swapping and Comparison0sThe Big Reveal0sSorting Arbitrary Collections0sLinked List Implementation0sCompleted Linked List CodeJust…One…More…Fix…0sIntegrating the Sort Method0sIssues with Inheritance0sAbstract Classes0sWhy Use Abstract Classes?0sSolving All Issues with Abstract Classes0sInterfaces vs Abstract Classes0s
-
Reusable CodeProject Overview0sProject Setup0sCSV DataType Definition Files – Again!0sReading CSV Files0sRunning an Analysis0sLosing Dataset Context0sUsing Enums0sWhen to Use Enums0sExtracting CSV Reading0sData Types0sConverting Date Strings to Dates0sConverting Row Values0sType Assertions0sDescribing a Row with a Tuple0sNot Done with FileReader Yet!0sUnderstanding Refactor #10sCreating Abstract Classes0sVariable Types with Generics0sApplying a Type to a Generic Class0sAlternate Refactor0sInterface-Based Approach0sExtracting Match References – Again!0sTransforming Data0sUpdating Reader References0sInheritance vs Composition0sMore on Inheritance vs Composition0sA Huge Misconception Around Composition0sGoal Moving Forward0sA Composition-Based Approach0sImplementing an Analyzer Class0sBuilding the Reporter0sPutting It All Together0sGenerating HTML Reports0sOne Last Thing!0sOops, My Bad0sApp Wrapup0s
-
Advanced Generics
-
Let’s Build a Web FrameworkApp Overview0sReminder on Using Parcel with npxParcel Setup0sFramework Structure0sDesigning the User0sRetrieving User Properties0sOptional Interface Properties0sAn Eventing System0sListener Support0sStoring Event Listeners0sDynamic Array Creation0sTriggering Event Callbacks0sSmall Update for JSON server and Parcel Start ScriptAdding JSON Server0sUnderstanding REST Conventions0sAdding Fetch Functionality0sSuccessfully Fetching Model Data0sSaving User Data0sRefactoring with Composition0sRe-Integrating Eventing0sComposition with Nested Objects0sA More Complicated Extraction0sOptions for Adapting Sync0sRefactoring Sync0sGeneric Constraints Around Sync0sConnecting Sync Back to User0sOptional Properties0sNo overload matches this call – this.dataExtracting an Attributes Class0sThe Get Method’s Shortcoming0sTwo Important Rules0sAn Advanced Generic Constraint0sRe-Integrating Attributes0sComposition is Delegation0sReminder on Accessors0sPassthrough Methods0sA Context Issue0sSetting Data While Triggering0sFetching User Data0sSaving Data0sComposition vs Inheritance…Again!0sExtracting a Model Class0sExtending the User0sFinal User Refactor0sModel Wrapup0sShortened Passthrough Methods0sUsers Collection0sImplementing a Users Collection0sParsing User JSON0sGeneric User Collection0sA Class Method for Collections0sView Classes0sBuilding the UserForm0sThe UserForm’s Render Method0sRendering HTML0sDefining an Events Map0sBinding Event Handlers0sAdding Model Properties0sBinding Events on Class Name0sAdding Methods to the User0sRe-Rendering on Model Change0sReading Input Text0sStrict Null Checks0sReusable View Logic0sExtracting a View Class0sType ‘K’ does not satisfy the constraint ‘HasId’.tsExtending with Generic Constraints0sSaving Data From a View0sUserEdit and UserShow0sNesting with Regions0sMapping Regions0sTesting Region Mapping0sView Nesting0sCollection Views0sCollectionView Implementation0sApp Wrapup0s
-
Express + Typescript IntegrationTypescript with JS Libraries0sApp Overview0sProject Setup0sBasic Routes with Express0sUsing an Express Router0sParsing Form Bodies0sWhy Doesn’t Express Play Nicely with TS?0sIssues with Type Definition Files0sDealing with Poor Type Defs0sWiring Up Sessions0sChecking Login Status0sLogging Out0sProtecting Routes0sA Closer Integration0sThe Refactoring Process0sPrototypes Reminder0s
-
Decorators
-
Advanced Express and TS IntegrationA Quick Disclaimer0sProject Overview0sWhy is This Hard?0sSolution Overview0sNote about target environment in tsconfigBasics of Metadata0sPractical Metadata0sLet’s Refactor!0sThe ‘Get’ Decorator0sES2016 Fix for Controller DecoratorThe Controller Decorator0sProof of Concept0sA Few Fixups0sDefining a RouteBinder0sClosed Method Sets with Enums0sMetadata Keys0sThe ‘Use’ Decorator0sTesting Use0sBody Validators0sAutomated Validation0sTesting Automated Validation0sFixing Routes0sUsing Property Descriptors for Type Checking0sApp Wrapup0s
-
React and Redux Class Components with TypescriptReact and Redux Overview0sApp Overview0sRequired React App Boilerplate and ReactDOM WarningSimple Components0sInterfaces with Props0sHandling Component State0sConfusing Component State!0sFunctional Components0screateStore Strikethrough in Code EditorRedux Setup0sAction Creators with Typescript0sAction Types Enum0sThe Generic Dispatch Function0sA Reducer with Enums0sValidating Store Structure0sConnecting a Component to Redux0sRendering a List0sAdding in Delete Functionality0sBreaking Out Action Creators0sExpressing Actions as Type Union0sType Guards in Reducers0sWiring up deleteToDo ActionAgain, Type Definition Files0sTracking Loading with Component State0sApp Wrapup0s
-
React Functional Components with TypeScriptRequired React App Boilerplate and ReactDOM WarningFile Extensions and Starting Up React0sChanges with TypeScript0sThe Big Difference with Props0sExplicit Component Type Annotations0sProperty ‘children’ does not existAnnotations with Children0sState with TypeScript0sType Inference with State0sQuick Finish to the Example0sMore on State0sType Unions in State0sInline Event Handlers0sTyping Standalone Event Handlers0sHandling Drag Events Too!0sApplying Types to Refs0sMore on Refs0s
-
Redux with Functional Components and TypeScriptApp Overview0sRequired React App BoilerplateRedux Store Design0sReducer Setup0sAnnotating the Return Type0sTyping an Action0sSeparate Interfaces for Actions0sApplying Action Interfaces0sAdding an Action Type Enum0sA Better Way to Organize Code0sSmall Update for Try / Catch BlockAdding Action Creators0sAdding Request Logic0sApplying Typings to Dispatch0screateStore Strikethrough in Code EditorSetting Up Exports0sWiring Up to React0sOops… Initial State!0sReminder on Event Types0sTypeScript Error When Dispatching ActionCalling an Action Creator0sBinding Action Creators0sSelecting State0sAwkward Typings Around React-Redux0sCreating a Typed Selector0sConsuming Store State0sQuick Wrapup – Final Lecture0s
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 effort
Learn 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 community
-
Master the fundamental features of Typescript by working on real world projects
-
We’ll build a custom front-end framework from scratch that you can use in place of React or Angular on your own personal projects
-
Comprehend the complex interplay between classes and interfaces, and why these two pieces of Typescript enable you to build incredibly reusable code
-
Dive deeper into Typescript with decorators, which we’ll use to build a custom integration between Typescript and Express
-
Structure your React and Redux applications more confidently by understanding how to couple them with Typescript
-
Skip the documentation for third party libraries by fluently reading type definition files
-
Learn just how smart Typescript is by experiencing how deeply it analyzes your code for errors
I 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.
What's included
- 27 hours on-demand video
- 26 articles
- 195 downloadable resources
- Access on mobile and TV
- Certificate of completion