Functional programming in TypeScript
Inspired by PureScript, fantasy-land, static-land, Scala.
The idea (faking higher kinded types in TypeScript) is based on Lightweight higher-kinded polymorphism
To install the stable version:
npm install --save fp-ts
The stable version is tested against TypeScript 2.8.x, but should run with TypeScript 2.2.2+ too
- io-ts - TypeScript compatible runtime type system for IO validation
- monocle-ts - Functional optics: a (partial) porting of scala monocle to TypeScript
- newtype-ts - Implementation of newtypes in TypeScript
- logging-ts - Composable loggers for TypeScript
- fp-ts-routing - A type-safe bidirectional routing library for TypeScript
- parser-ts - String parser combinators for TypeScript
- remote-data-ts - RemoteData type (check this article)
- fp-ts-rxjs - fp-ts bindings for RxJS
- fp-ts-fluture - fp-ts bindings for Fluture
- Free monad
- MTL-style
- OptionT monad transformer
- EitherT monad transformer
- StateT monad transformer
- ReaderT monad transformer
- Applicative composition
- Type safe finite state machines with
IxIO
- Moore machines
- Debugging with
Trace
- fantas-eel-and-specification - Code for the Fantas, Eel, and Specification blog series on functional programming by Tom Harding
The MIT License (MIT)