ts-fp

型付き関数型プログラミング用のTypeScript(javascript)ライブラリ。
https://github.com/gcanti/fp-ts

API

よく使いそうなAPIを例と一緒に紹介。

Either<L, A>

エラー処理をtry-catchを書かずにメソッドチェーンだけで実装できる。
1つ目の型パラメータはエラー時に返される型、2つ目は正常終了時に返される型となる。

例:

const isNumber = (value: any): Either<string, number> => {
    if(value typeof number){
        // 正常終了時
        return right(value as number)
    } else {
        // エラー時
        return left("not number!!!")
    }
}

isNumber(123)
    .fold(
        (left: string) => console.error(left)
        (right: number) => console.log(right)
    )

Eitherを返す関数は、正常時にright()、エラー時にleft()を返すように実装する。
利用側はfold()を読んで正常時、エラー時それぞれの処理を書くのが基本的な使い方になる。

  • Higher-kind Generics: 型を受け取って型を返す関数

Fanctor(ファンクタ)