Philosophy
- Black Box: Black-box Principles
- Problem/Project/Scenario Based. Should have context.
The Basics
-
Naming Lies.
- Why TypeScript?
-
You have been using TypeScript all along!
- Type Inference in JS
-
3 Primitives
-
Variable types & Inference
-
Function return types
-
Arrays vs Tuples
-
Any, Unknown, Never, Void
-
Null, Undefined
-
Inline object typing (with fixed keys and with any keys -- Index Types and Index Signatures)
-
Shaping the data model with Interface and Type
-
Optionals
-
Type Casting: As and As Unknown
-
Enums vs String Enums
-
Union and Intersection Types
-
String Unions
-
Type Narrowing and Widening
-
Strict Mode: Why union undefined
-
Generic Types
-
Using Generics
-
Common TS Helper Types (Generics) & How to read generics -- Record, Partial, Readonly, Omit, Pick, Exclude, etc.
-
Readonly in Interface
Advanced Types & Creating Helper Types
-
Type Guards and Type Predicates Using if, in, typeof and predicate function to narrow down types
-
Type Aliasing and Recursive Types: ITreeNode and ILinkedList
-
Creating Your Own Custom Types
-
Mapped Types
-
Conditional Types
-
Advanced Types in Production