Functional Programming in TypeScript

Master functional programming with TypeScript's type system. Write typed pure functions, generic functors, typed monads, and compose type-safe pipelines. Follow the ideas in small steps: first understand the concept, then practice it in the browser, and finally connect it to a realistic coding problem. Each lesson builds on the previous one so the track becomes a skill you can explain and use, not just a list of terms.

180 interactive lessons across 6 units · 36+ hours · advanced level

What you will learn

Build practical skills in TypeScript, Functional Programming, Generics, Types through browser-based coding exercises, guided feedback, unit quizzes, a debugging challenge, and a final project.

Course access

Unit 1, including its first 30 lessons and unit quiz, is free. The remaining 5 units require a CodeLearning365 Pro subscription.

View Pro access options

Functional Programming in TypeScript curriculum

The curriculum progresses from foundations to applied practice and mastery. Representative topics from every unit are listed below.

Unit 1: Foundations

30 lessons covering topics such as Pure Functions with JSDoc Types, Typed Immutability, Generic Map, Typed Predicates and Filter, Generic Reduce.

  • Pure Functions with JSDoc Types
  • Typed Immutability
  • Generic Map
  • Typed Predicates and Filter
  • Generic Reduce

Unit 2: Core Concepts

30 lessons covering topics such as Power Up 031: Typed Either<L, R> — Error Handling, Power Up 032: Typed Lazy Evaluation with Generators, Power Up 033: Typed Point-Free Style, Power Up 034: Typed Transducers, Power Up 035: Typed Monoids and Semigroups.

  • Power Up 031: Typed Either<L, R> — Error Handling
  • Power Up 032: Typed Lazy Evaluation with Generators
  • Power Up 033: Typed Point-Free Style
  • Power Up 034: Typed Transducers
  • Power Up 035: Typed Monoids and Semigroups

Unit 3: Building Skills

30 lessons covering topics such as Power Up 061: Pure Functions with JSDoc Types, Power Up 062: Typed Immutability, Power Up 063: Generic Map, Power Up 064: Typed Predicates and Filter, Power Up 065: Generic Reduce.

  • Power Up 061: Pure Functions with JSDoc Types
  • Power Up 062: Typed Immutability
  • Power Up 063: Generic Map
  • Power Up 064: Typed Predicates and Filter
  • Power Up 065: Generic Reduce

Unit 4: Applied Practice

30 lessons covering topics such as Power Up 091: Typed Either<L, R> — Error Handling, Power Up 092: Typed Lazy Evaluation with Generators, Power Up 093: Typed Point-Free Style, Power Up 094: Typed Transducers, Power Up 095: Typed Monoids and Semigroups.

  • Power Up 091: Typed Either<L, R> — Error Handling
  • Power Up 092: Typed Lazy Evaluation with Generators
  • Power Up 093: Typed Point-Free Style
  • Power Up 094: Typed Transducers
  • Power Up 095: Typed Monoids and Semigroups

Unit 5: Projects

30 lessons covering topics such as Power Up 121: Pure Functions with JSDoc Types, Power Up 122: Typed Immutability, Power Up 123: Generic Map, Power Up 124: Typed Predicates and Filter, Power Up 125: Generic Reduce.

  • Power Up 121: Pure Functions with JSDoc Types
  • Power Up 122: Typed Immutability
  • Power Up 123: Generic Map
  • Power Up 124: Typed Predicates and Filter
  • Power Up 125: Generic Reduce

Unit 6: Mastery

30 lessons covering topics such as Power Up 151: Typed Either<L, R> — Error Handling, Power Up 152: Typed Lazy Evaluation with Generators, Power Up 153: Typed Point-Free Style, Power Up 154: Typed Transducers, Power Up 155: Typed Monoids and Semigroups.

  • Power Up 151: Typed Either<L, R> — Error Handling
  • Power Up 152: Typed Lazy Evaluation with Generators
  • Power Up 153: Typed Point-Free Style
  • Power Up 154: Typed Transducers
  • Power Up 155: Typed Monoids and Semigroups

Compare all coding tracks