created: 2024-07-27T08:31:50.905Z
TypeScript の Result 型のライブラリを比較
neverthrow
supermacro/neverthrow: Type-Safe Errors for JS & TypeScript
- Result 型専門のライブラリだと、たぶんこれが一番有名
- 内部的にはパフォーマンスちゃんと気にしてるのがよさそうですね
- eslint がついてるのも手が行きとどいてるというか
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
が付属してるので、ちゃんと型がついてたらランタイムエラーならなそう。あとチームで習慣にできるのもいいですね。