TS 中文文档 TS 中文文档
指南
GitHub (opens new window)
指南
GitHub (opens new window)
  • 入门教程

    • TypeScript 手册
    • 基础知识
    • 日常类型
    • 类型缩小
    • 更多关于函数
    • 对象类型
    • 从类型创建类型
    • 泛型
    • Keyof 类型运算符
    • Typeof 类型运算符
    • 索引访问类型
    • 条件类型
    • 映射类型
    • 模板字面类型
    • 类
    • 模块
  • 参考手册

  • 项目配置


Functional programming in TypeScript

build status

Introduction


fp-ts is a library for typed functional programmingin TypeScript.

fp-ts aims to allow developers to use popular patterns and abstractionsthat 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

Haskell
PureScript
Scala

Sponsors


:---
Unsplash Unsplash https://unsplash.com/ The internet’s source for visuals. Powered by creators everywhere.

Installation


To install the stable version:

  1. ``` sh
  2. npm install fp-ts

  3. ```

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.

Docs
Learning Resources
Ecosystem
API Reference
version 2.x (current)
version 1.x

Help


If you need help with fp-ts check out:

this Discord server
the #fp-ts channel on FP slack.

Development


Code conventions

License


The MIT License (MIT)
Last Updated: 2023-09-03 17:10:52