TL;DR

TypeScript で関数型プログラミングをするための、高速で実用的なユーティリティライブラリ。データを最初の引数に取る書き方で、Option と Result の型を備えている。

仕組み

主な特徴は次のとおり。

  • データを最初の引数に取る: 公式は、このほうがコードが読みやすいとしている
  • Option と Result: 値がないことや処理の結果を、例外に頼らずに表せる
  • イミュータブル: すべての関数はイミュータブルなデータを返し、副作用を持たない
  • Tree Shaking: 使わない関数をバンドルから除ける
  • 速さ: ReScript で書かれており、公式のベンチマークでは lodash、Ramda、Remeda より速い

TypeScript のほかに Flow にも対応している。モジュールは Array、Boolean、Function、Guards、Number、Object(Dict)、Option、Result、String がある。

関連

出典