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 允许你处理任何用例(例如过滤、超时、重试等等)。然而,在课程中解释每一个函数会使其变得枯燥且过于冗长。

对此有两个解决方案:

  1. 使用 IDE 自动建议来搜索你需要的 API。从那里你可以阅读函数文档、阅读类型签名,或直接跳转到源码实现。所有这些都无需离开你的 IDE。

在 Effect 中,从 IDE 跳转到源码不会带你到 .d.ts 文件,而是直接到实际的原始源码实现。

大多数 API 都足够简单,可以独立阅读和理解。

  1. 访问 API 参考文档 并搜索你需要的服务或函数。

你可以使用 IDE 自动建议来查看服务的完整 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/
Author
0bipinnata0
Published at
2025-08-30 15:59:41