Functional programming in TypeScript
fp-ts is a library for typed functional programming in TypeScript.
fp-ts aims to allow developers to use popular patterns and abstractions that are available in most functional languages. For this, it includes the most popular data types, type classes and abstractions such as Option, Either, IO, Task, Functor, Applicative, Monad to empower users to write pure FP apps and libraries built atop higher order abstractions.
A distinctive feature of
fp-ts with respect to other functional libraries is its implementation of Higher Kinded Types, which TypeScript doesn't support natively.
To install the stable version:
npm install fp-ts
Make sure to always have a single version of
fp-ts installed in your project. Multiple versions are known to cause
tsc to hang during compilation. You can check the versions currently installed using
npm ls fp-ts (make sure there's a single version and all the others are marked as
Strictness – This library is conceived, tested and is supposed to be consumed by TypeScript with the
strict flag turned on.
|<= 1.14.4||2.8+ (*)|
(*) If you are running
< firstname.lastname@example.org you have to polyfill the
unknown type. You can use unknown-ts as a polyfill.
Disclaimer. Teaching functional programming is out of scope of this project, so the documentation assumes you already know what FP is.
If you need help with
fp-ts check out:
The MIT License (MIT)
Incredible library! I have used it at my previous job, I was so impressed with the functional world that I introduced another engineer and together we changed the entire front-end stack to include functional via fp-ts.
It was little confusing when I first tried it and also didn't find much help on documentation but finally somehow figured out the stuffs. Beginners should look for other alternatives. But as it works find for me I am giving it 4 stars.