fp-ts is a library for typed functional programming in TypeScript.
The library addresses the challenge of bringing functional programming patterns to TypeScript by providing popular data types and abstractions like Option, Either, IO, Task, Functor, Applicative, and Monad. A distinctive feature is its implementation of Higher Kinded Types, which TypeScript does not support natively, enabling developers to write pure functional programs using higher-order abstractions that would otherwise be unavailable in the language.
Developers considering adoption should be aware that fp-ts is transitioning into the Effect-TS ecosystem, with Effect-TS positioned as the successor embodying what would be fp-ts v3. New users should evaluate whether to adopt fp-ts directly or move toward Effect-TS for enhanced capabilities and ongoing support. The tool suits projects where typed functional programming patterns are a priority and where the abstractions it provides align with the team's architectural goals. Installation requires careful dependency management, as multiple versions of fp-ts in a project can cause TypeScript compilation to hang.
The project maintains active build status and receives regular updates. Development is characterized by a deliberate transition strategy that prioritizes ecosystem consolidation rather than continuing as an independent library.