TypeScript
Full course · 21 lessonsTypeScript is JavaScript with static types. It catches errors at compile time, enables fearless refactoring, and powers the largest codebases in the world. These are the definitive free resources — vetted, current, and complete.
TypeScript Setup and Configuration
Install TypeScript, configure tsconfig.json, understand the compilation pipeline, and set up a development workflow.
Basic Types and Type Annotations
Primitive types, array types, tuple types, enum types, the any/unknown/never types, and type inference.
Functions and Function Types
Function type annotations, optional/default/rest parameters, overloads, this typing, and call signatures.
Object Types and Interfaces
Object type literals, interfaces, optional/readonly properties, index signatures, and interface extension.
Arrays, Tuples, and Enums
Array types, readonly arrays, tuple types with labels and spreads, const assertions, and enum best practices.
Union, Intersection, and Literal Types
Union types, intersection types, literal types, narrowing with typeof/in/instanceof, and discriminated unions.
Interfaces and Type Aliases Deep Dive
Interface merging, extending types, recursive types, mapped type modifiers, and conditional type constraints.
Generics: Basics and Constraints
Generic functions, generic constraints, generic interfaces, default types, and covariance/contravariance.
Keyof, Typeof, and Indexed Access Types
The keyof operator, typeof operator, indexed access types, and building type-safe lookup patterns.
Conditional and Mapped Types
Conditional types, infer keyword, distributive conditionals, mapped types, and template literal types.
Classes and Inheritance
Class type annotations, access modifiers, parameter properties, abstract classes, and implements clauses.
Modules and Declaration Files
ES modules, import/export syntax, ambient declarations, module augmentation, and writing .d.ts files.
Type Narrowing and Type Guards
User-defined type guards, assertion functions, the never type for exhaustiveness, and discriminated union patterns.
Utility Types and Satisfies
Built-in utility types (Partial, Required, Pick, Omit, Extract, Exclude, ReturnType), the satisfies operator, and Awaited.
Async/Await and Promise Typing
Typing async functions, Promise generics, async iterators, error handling patterns, and Promise.all/race/allSettled typing.
tsconfig.json Deep Dive
Compiler options explained: strict, moduleResolution, target, paths, type roots, project references, and build mode.
Advanced Type Patterns
Branded types, nominal typing patterns, type-safe builders, the `as const` pattern, and type-level programming.
React with TypeScript
Typing components, props, state, events, refs, hooks, context, and higher-order components with TypeScript.
Decorators and Mixins
Experimental decorators, legacy vs TC39 decorators, class/method/accessor/property decorators, and mixin patterns.
Performance and Compiler API
TypeScript performance optimization, incremental builds, const generics, the compiler API, and custom transformers.
Migration Patterns and Advanced Configuration
Migrating JS to TS gradually, allowJs, checkJs, strict mode adoption, path mapping, and monorepo patterns.
Free Books
TypeScript Handbook (Official)
The official handbook by Microsoft. Covers every feature from basic types to advanced inference, generics, and modules.
TypeScript Deep Dive
A comprehensive open-source book by Basarat Ali Syed covering real-world patterns, project setup, and migration strategies.
Type Challenges — Solutions Book
Companion guide to type-challenges with detailed explanations of over 100 advanced type puzzles.
Official Documentation
TypeScript Official Docs
The complete official documentation: handbook, reference, tutorials, release notes, and TSConfig reference.
TypeScript Playground
Interactive sandbox with instant type evaluation, TSConfig toggles, and shareable code snippets.
TypeScript Wiki (GitHub)
Community-maintained wiki covering design decisions, breaking changes, and advanced topics.
Interactive Courses
Video Courses
Practice & Challenges
Type Challenges — TypeScript Type Puzzles
Over 200 community-sourced type-level challenges from easy to extreme. The gold standard for mastering advanced types.
Exercism — TypeScript Track
100+ coding exercises with automated analysis and optional human mentoring.
Codewars — TypeScript Kata
Solve community-created challenges while getting typed feedback.
Reference & Cheatsheets
News & Updates
Community
Reddit r/typescript
The largest TypeScript community on Reddit for discussions, articles, and ecosystem news.
TypeScript Discord (Official)
The official TypeScript Discord server for community Q&A.
TypeScript GitHub Discussions
Official GitHub discussions for feature requests, design proposals, and RFCs.

