两个小工具拥抱 Result 模式:把 TypeScript 的 try/catch 变成类型化的成败结果
来源: daviddalbusco.com — 2026-09-06
概述
作者在 Rust 里用惯了 Result 之后,把这种「不抛异常、把成功与失败都作为值返回」的结果模式带回了 TypeScript,并分享两枚随身小工具。核心是给代码分三层立规矩:最上层的表现层只处理 Result、永远不写 try/catch;中间的服务层负责把所有异常统一 catch 成 Result;最底层的 core(API、数据库、文件系统)则放开抛错。为了让服务层不用到处写重复的 try/catch,第一个工具 tryCatch 把「执行一个可能抛错的函数」包成 Result;第二个 safeExec 更进一步,用于给那些「本该返回 Result、但可能仍意外抛错」的函数兜底,保证它绝不从手里漏出异常。
核心要点
- Rust 用 Result 类型化地强迫调用方处理错误,用 ? 上抛
- 三层分工:表现层只处理 Result、服务层 catch 一切、core 层放开抛
- tryCatch 把任意会抛错的 promise 包成 Result,消灭重复样板
- safeExec 给已返回 Result 但可能仍抛错的函数兜底,保证绝不抛出
金句
The presentation layer should only ever have to handle the result of something, never an exception.
👍 0
👎 0
返回 Lobsters 首页