Categories
Tags
Ai 生成 API学习 API简化 api请求 API调用 best-practices Blogging Caching catchTag catchTags class CLI Config context Context Context.Tag CSS Customization Demo development DocC Docker dual API Effect effect Effect.Service Effect.succeed Example extension ffmpeg filterOrFail flatMap Fuwari gen generator grep hooks HTML HTTP响应 IDE自动补全 iOS javascript JavaScript Javascript Layer.effect Layer.provide Layers Linux Markdown Mock n8n Next.js ParseError pipe pokemon PostCSS process.env progress Promise promise provideService PWA react React React Hook Form React Query React Router react-native Scheduler Schema Schema.Class security Service Worker Services SSR state-management suspense Tagged Errors TaggedError TanStack Query TanStack Start tips tryPromise tsconfig TypeScript typescript Video VS Code vscode Web API Web Development yield yt-dlp Zod 不透明类型 二叉树 代码组织 任务调度 优先级 使用服务 依赖注入 依赖管理 值语义 入门教程 最佳实践 最小堆 函数式编程 函数组合 前端 前端开发 副作用 副作用控制 可视化 可组合性 可维护性 可访问性 命令行 响应过滤 多个错误 实现 实践指南 层 层依赖 层组合 工具链 并发控制 应用架构 延迟执行 开发技巧 开发教程 开源 异步处理 异步操作 异步编程 性能优化 手写系列 排序 接口设计 插件开发 数据结构 数据获取 数据解码 数据验证 无限滚动 日历 日志分析 服务 服务依赖 服务定义 服务实现 服务提供 测试 源码分析 状态管理 环境变量 生成器 离线支持 程序分离 算法 类型安全 类型定义 类型推断 类型系统 类定义 线性代码 组合 翻译 自动化 自定义错误 表单验证 记忆化 设计模式 语义化 运维 运行时验证 部分应用 配置 配置变量 配置服务 配置管理 重构 错误处理 错误定义 错误恢复 项目设置
557 words
3 minutes
Effect 类型安全错误处理:9. 如何学习新的 Effect API
如何学习新的 Effect API
让我们回到最初的纯 TypeScript 解决方案:
const main = async () => {
const response = await fetch("https://pokeapi.co/api/v2/pokemon/garchomp/");
const json = await response.json();
return json;
};
main().then(console.log);这里有一个问题:即使响应状态不是 200(正常),fetch 也能正常工作。
因此我们需要手动处理这种情况:
const main = async () => {
const response = await fetch("https://pokeapi.co/api/v2/pokemon/garchomp/");
if (!response.ok) {
throw new Error("Response not okay");
}
const json = await response.json();
return json;
};让我们在 Effect 中做同样的事情!
管道操作和 Effect API
现在,请记住这一点:Effect API 很庞大。
这是有意设计的:API 允许你处理任何用例(例如过滤、超时、重试等等)。然而,在课程中解释每一个函数会使其变得枯燥且过于冗长。
对此有两个解决方案:
- 使用 IDE 自动建议来搜索你需要的 API。从那里你可以阅读函数文档、阅读类型签名,或直接跳转到源码实现。所有这些都无需离开你的 IDE。
在 Effect 中,从 IDE 跳转到源码不会带你到
.d.ts文件,而是直接到实际的原始源码实现。大多数 API 都足够简单,可以独立阅读和理解。
- 访问 API 参考文档 并搜索你需要的服务或函数。

你可以使用 IDE 自动建议来查看服务的完整 API,阅读其文档和类型签名。
你也可以在 Effect 的 Discord 社区 寻求帮助,我强烈建议你加入 👍
我的建议总是在真实项目中工作,并在过程中找到你需要的东西。
如果你的用例很常见,总是假设它被 Effect 覆盖了。
想要过滤?搜索
filter。想要映射?map。想要超时?timeout。作为一般规则,避免自定义实现常见函数,这会变得更难维护。
这正是我们在本课程中所做的:我们有一个具体的目标(发出 API 请求),并且在实现更多功能时发现我们需要的 API。
在开始使用 Effect 时,期望经常搜索 API。
Effect 类型安全错误处理:9. 如何学习新的 Effect API
https://0bipinnata0.my/posts/course/effect-beginners-complete-getting-started/type-safe-error-handling-with-effect/how-to-learn-new-effect-apis/