TypeScript で Result 型でのエラーハンドリングを通してモナドの世界を覗いてみる
アドベントカレンダー用の記事 TypeScript で Result 型でのエラーハンドリングを通してモナドの世界を覗いてみる のために用意した実験用リポジトリ
Result 型が提供する機能のうち、下記をサポートしている。
- 同期系
map
:A -> B
への変換andThen
:A -> Result<B, E>
への変換mapErr
:E -> F
への変換traverseA
traverseM
apply
- 非同期系
mapAsync
: 非同期的なA -> B
変換をサポートする
- 便利関数
pipe
: 関数同士を合成するpipeWith
: 関数同士を合成し、その関数に対して初期値を適用するcombine