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.
Inspired by
Table of contents
- Installation and TypeScript compatibility
- Getting started
- Documentation
- Ecosystem
- Type Classes Diagram
- License
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
).
The stable version is tested against TypeScript 3.3.3, but should run with TypeScript 2.8.0+ too.
- Strictness – This library is conceived, tested and is supposed to be consumed by TypeScript with the
strict
flag turned on. - Compatibility – If you are running
< typescript@3.0.1
you have to polyfill theunknown
type. You can use unknown-ts as a polyfill.
The MIT License (MIT)