fp-ts
Functional programming in TypeScript
README
Functional programming in TypeScript
Typed 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.
Inspired by
- Haskell
- Scala
Installation
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 deduped).
TypeScript compatibility
Strictness – This library is conceived, tested and is supposed to be consumed by TypeScript with the strict flag turned on.
`fp-ts` | required |
---|---|
--------------- | ----------------------------- |
2.0.x+ | 3.5+ |
1.15.x+ | 3.1+ |
<= | 2.8+ |
(\*) If you are running < typescript@3.0.1 you have to polyfill the unknown type. You can use unknown-ts as a polyfill.
Documentation
Disclaimer. Teaching functional programming is out of scope of this project, so the documentation assumes you already know what FP is.
- Docs
- API Reference
Help
If you need help with fp-ts check out:
- this Discord server
- the #fp-ts channel on FP slack.
Development
License
The MIT License (MIT)