ResultUtil
ResultUtil
成功/失敗を型安全に表現する Result 型
概要
ResultUtil は関数の成功/失敗を例外ではなく型で表現するユーティリティ。HttpUtil の戻り値にも使用される。
型
type Ok<T> = { ok: true; data: T };
type Err<E> = { ok: false; error: E };
type Result<T, E = unknown> = Ok<T> | Err<E>;関数
| 関数 | シグネチャ | 説明 |
|---|---|---|
ok | <T>(data: T) => Ok<T> | 成功値を作成 |
err | <E>(error: E) => Err<E> | エラー値を作成 |
使用例
import { ResultUtil } from "@unitto/utility";
// 成功
const success = ResultUtil.ok({ id: "1", name: "Taro" });
// { ok: true, data: { id: "1", name: "Taro" } }
// 失敗
const failure = ResultUtil.err("not found");
// { ok: false, error: "not found" }
// パターンマッチ
function handle(result: Result<User, string>) {
if (result.ok) {
console.log(result.data.name);
} else {
console.error(result.error);
}
}