SuperAPI AI 工具集

typescript-effect-ts

编程与开发

查看项目

更新于 10-16 00:06

技能介绍

用途:介绍如何在 TypeScript 中使用 Effect-TS 构建健壮、类型安全的应用,核心是函数式效应系统,涵盖类型化错误、依赖注入、资源管理与并发。

主要能力:核心类型 Effect<Success, Error, Requirements> 表示成功值、可能错误与所需上下文;支持用 Effect.succeed、Effect.fail、Effect.sync、Effect.try、Effect.tryPromise、Effect.die、Effect.fromNullable 创建效应,用 runSync、runPromise、runSyncExit、runPromiseExit 运行。Effect.gen 生成器可用类似 async 的写法组合效应。错误处理方面,错误在类型中追踪,使用 Effect.catchTag、Effect.catchAll 等处理,可通过 _tag 标记错误。依赖注入用 Context.Tag 声明服务、Layer 提供并组合。Schema 用于编解码与校验外部数据,如 Schema.Struct、Schema.decodeUnknownSync、Schema.decodeUnknown。资源管理用 Effect.acquireRelease 与 Effect.scoped 保证清理。常见模式包括 Effect.all 的顺序/并行/限流执行、Effect.retry 配合 Schedule 做退避重试、Effect.timeout 设置超时。

使用方式:按需查阅各主题文档(核心概念、错误处理、服务与 Layer、Schema、资源)。命令与代码保持原样,例如 import { Effect } from "effect"。建议复杂流程用 Effect.gen,错误加 _tag,服务用 Context.Tag 定义,用 Layer 组合,外部数据用 Schema 校验,资源用 acquireRelease 限定,runPromise/runSync 只在应用边界调用。

适用场景:需要类型化错误、显式依赖、可靠资源清理与并发控制的 TypeScript 服务端或应用开发;可与 Drizzle ORM、Fastify 等集成。

限制:资料未提供安装命令、版本要求、性能数据、收费信息或与其他库的详细对比;以上均暂未提供。