gcanti/fp-ts

TypeScriptgcanti.github.io/fp-ts/

Functional programming in TypeScript

typescriptfunctional-programmingalgebraic-data-types
Crecimiento de estrellas
Estrellas
11.5k
Forks
510
Crecimiento semanal
+1
Issues
156
5k10k
ene 2017mar 2020jun 2023sept 2026
Artefactosnpm
README

Functional programming in TypeScript

build status npm downloads

📢 Important Announcement: fp-ts is Joining the Effect-TS Ecosystem!

We are excited to announce that the fp-ts project is officially merging with the Effect-TS ecosystem. This is a significant step forward in the functional programming landscape, bringing together two powerful libraries under one roof. Giulio Canti, the author of fp-ts, is being welcomed into the Effect organization, promising an exciting future with enhanced capabilities and support.

What This Means for New Users:

Effect-TS can be regarded as the successor to fp-ts v2 and embodies what would be considered fp-ts v3. This merger marks a significant evolution in the library's capabilities, integrating more features and functionalities tailored towards robust, type-safe, and scalable functional programming.

For more details on this merger and what it entails, please refer to the official announcement here. Additionally, you can explore more about Effect-TS and its offerings on our website and documentation.

Introduction

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

Sponsors

Unsplash
Unsplash
https://unsplash.com/

The internet’s source for visuals.
Powered by creators everywhere.

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)

Repositorios relacionados
n8n-io/n8n

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

TypeScriptnpmcliOtherautomationipaas
n8n.io
203.8k60.6k
microsoft/vscode

Visual Studio Code

TypeScriptnpmappMIT Licenseeditorelectron
code.visualstudio.com
191.5k42.1k
f/prompts.chat

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

HTMLawesomeOtherchatgptai
prompts.chat
169.7k21.8k
langchain-ai/langchain

The agent engineering platform.

PythonPyPIlibraryMIT Licenseaianthropic
docs.langchain.com/langchain/
146k24.4k
immich-app/immich

High performance self-hosted photo and video management solution.

TypeScriptnpmappGNU Affero General Public License v3.0backup-toolmobile-app
immich.app
113.7k6.8k
microsoft/TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

GoGo ModulesApache License 2.0typescriptjavascript
typescriptlang.org
111k13.8k
denoland/deno

A modern runtime for JavaScript and TypeScript.

Rustcrates.ioMIT Licensedenotypescript
deno.com
108.4k6.4k
angular/angular

Deliver web apps with confidence 🚀

TypeScriptnpmMIT Licenseangulartypescript
angular.dev
101k27.4k
ant-design/ant-design

An enterprise-class UI design language and React UI library

TypeScriptnpmMIT Licensereactui-kit
ant.design
99.4k54.7k
oven-sh/bun

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one

Rustcrates.iolibraryOtherbunbundler
bun.com
95.9k5k
ruvnet/RuView

π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.

Rustcrates.ioawesomeMIT Licensedenseposewifi
cognitum.one/RuView
92.8k12.3k
storybookjs/storybook

Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation

TypeScriptnpmtutorialMIT Licensestorybookstyleguide
storybook.js.org
91k10.4k