{
  "schemaVersion": 1,
  "citationId": "ecn:v4/getting-started/the-effect-type@16b1646#intro",
  "citeUrl": "/cite/932427e58f5ce1b1.json",
  "digest": "932427e58f5ce1b1",
  "slug": "v4/getting-started/the-effect-type",
  "version": "v4",
  "title": "Effect 类型",
  "anchor": "intro",
  "headingPath": [],
  "pageUrl": "/docs/v4/getting-started/the-effect-type/",
  "deepLink": "/docs/v4/getting-started/the-effect-type/#intro",
  "officialUrl": "https://effect.website/docs/v4/getting-started/the-effect-type",
  "upstreamPath": "v4/getting-started/the-effect-type.mdx",
  "upstreamCommit": "16b1646850ded8b32b8b86bbdd941092d55d8f24",
  "upstreamRawUrl": "https://raw.githubusercontent.com/Effect-TS/website/16b1646850ded8b32b8b86bbdd941092d55d8f24/apps/web/src/content/docs/v4/getting-started/the-effect-type.mdx",
  "status": "published",
  "stale": false,
  "contentHash": "344e8ac76711b372",
  "chunkText": "Effect 类型是对一个工作流或操作的描述，它会被惰性执行。也就是说，当你创建一个 Effect 时，它不会立刻运行，而是定义了一段程序：它可能成功，可能失败，也可能需要一些额外的上下文才能完成。\n\n下面是 Effect 的一般形式：\n\n┌─── Represents the success type\n │ ┌─── Represents the error type\n │ │ ┌─── Represents required dependencies\n ▼ ▼ ▼\nEffect<Success, Error, Requirements>\n\n这个类型表明一个 effect：\n成功并返回 Success 类型的值\n失败并带有 Error 类型的错误\n执行时可能需要 Requirements 类型的上下文依赖\n\n从概念上讲，你可以把 Effect 看作下面这个函数类型的带副作用（effectful）版本：\n\ntype Effect<Success, Error, Requirements> = (\n context: Context<Requirements>,\n) => Error Success\n\n不过，effect 实际上并不是函数。它们可以描述同步、异步、并发以及涉及资源管理的计算。\n\n不可变性。Effect 值是不可变的，Effect 库中的每个函数都会产生一个新的 Effect 值。\n\n描述交互。这些值本身不会执行任何动作，它们只是描述带副作用的交互。\n\n执行。Effect 可以由 Effect 运行时系统 执行，运行时系统会把它解释为与外部世界的实际交互。理想情况下，这种执行只发生在应用中的单个入口点，例如发起这些带副作用操作的 main 函数。",
  "generatedAt": "2026-09-18T14:48:33.525Z"
}
