TSでResult型とかやりたいときのライブラリ調査
Untitled
候補
option-t
関数で独立してるのが良い
ドキュメントへのアクセスがしにくいのがちょっとつらい
と思ったが、逆引きの解説呼んだりしたらまあ分かるな
import pathがやや気になるか?
このライブラリにはpipeは同梱されてないけど、pipe関数があれば良さげ?
oxide.ts
実装が少なく、ソースも読みやすい
ちょっとメソッドチェーンしてる
neverthrow
メソッドチェーン
重め
これはいろいろと高度な関数プログラミングやるためにいろいろはいってる
ResultとかOptionだけのために入れるのは重たい
内部的にfp-ts使ってるので、今回の目的にはいらない
miyamonz.iconの好み順位
option-t
さらにこれがかりー化されてpipeも同梱されたら良いんじゃないか
oxide.ts
neverthrow
とはいえ、
概念的にはどれもほとんど一緒で、
置換えも難しくないと思うし、
neverthrowが嫌いというわけではない
こういう系のライブラリの問題として、orElseとかmapOrとか語彙がちゃんとプログラマの脳内にちゃんと定着しているか、というところにある
読み手という観点だと、個別のオペレータが単なる関数として実装されてて、コードジャンプしたら何をしてるかが直ちに分かるようになってると良い
書き手の場合、「こうしたい」のときに直ちにオペレータが見つけられると良い
see also
option-tの作者
まず、そもそもとして冒頭でも述べたように、自分は実際には各プロジェクトのmotivationに依存して最終的なconvention(規約)が決定されるのであって、ライブラリそのものに強い色をつけるのが妥当と思えず、この種の一般的なデータ構造の実装を提供するライブラリそのものはデータ構造の提供に止めるべきであろう、ましてエラーハンドリングのようにコードの設計や運用指針まで影響するものであれば尚更、という設計意図が非常に強い。