Necessary Pigeonholing Mechanism

    fp-ts
    TypeScript icon, indicating that this package has built-in type declarations

    2.12.1 • Public • Published

    Functional programming in TypeScript

    build status dependency status npm downloads

    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.

    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

    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 version required typescript version
    2.0.x+ 3.5+
    1.15.x+ 3.1+
    <= 1.14.4 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.

    Help

    If you need help with fp-ts check out:

    Development

    License

    The MIT License (MIT)

    Install

    npm i fp-ts

    DownloadsWeekly Downloads

    1,013,332

    Version

    2.12.1

    License

    MIT

    Unpacked Size

    4.19 MB

    Total Files

    614

    Last publish

    Collaborators

    • gcanti