Lobsters | 原文链接 | 2026-09-08 收录

两个小工具拥抱 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、但可能仍意外抛错」的函数兜底,保证它绝不从手里漏出异常。

核心要点

金句

The presentation layer should only ever have to handle the result of something, never an exception.
返回 Lobsters 首页