created: 2024-07-27T08:31:50.905Z

TypeScript の Result 型のライブラリを比較

neverthrow

supermacro/neverthrow: Type-Safe Errors for JS & TypeScript

fp-ts

gcanti/fp-ts: Functional programming in TypeScript

  • たぶん一番有名。というかスター数が多い
  • Result 型専門のライブラリでない
  • 関数型全般で使う型のライブラリで、いろんなものごとが型で表現できる

ts-results

vultix/ts-results: A typescript implementation of Rust's Result object.

  • 老舗っぽい雰囲気で、たぶん過不足なく便利なんだろう
  • しかし最近はコミットされてなさそう
    • Result 型だけのライブラリでそんなにやることもないのかもしれない

ts-custom-error

adriengibrat/ts-custom-error: Extend native Error to create custom errors

  • スター数に比してダウンロード数がすごい
  • 有名なライブラリが依存してるとかなのかな

その他

例外を再スローするときに cause を使うのよさそう。

所感

fp-ts 以外はコード量も小さい。

「try-catch はイヤだな」くらいだと neverthrow を使っておけばよさそう。eslint が付属してるので、ちゃんと型がついてたらランタイムエラーならなそう。あとチームで習慣にできるのもいいですね。

ユーザーの問題解決とプロダクトの成功を導く エンジニアのためのドキュメントライティング
[ad] ユーザーの問題解決とプロダクトの成功を導く エンジニアのためのドキュメントライティング
ジャレッド・バーティ, ザッカリー・サラ・コ―ライセン (単行本)