SuperAPI AI 工具集

effect-schema

编程与开发

查看项目

更新于 10-16 02:31

技能介绍

用途:该技能面向使用 @effect/schema 的开发者,帮助定义类型安全的 schema,并在数据边界处完成校验、解析、编码与转换,常用于 API 请求/响应、配置文件、表单输入、环境变量和数据库结果等场景。

主要能力:支持原始类型(String、Number、Boolean、BigInt、Symbol 等)与特殊类型(Undefined、Void、Null、Unknown、Any);支持字面量、Struct、可选字段、嵌套 schema、数组、非空数组、元组、Record、Union(含带标签的可辨识联合)以及通过 Schema.extend 实现的交叉类型。提供同步解析(Schema.decodeUnknownSync)、基于 Effect 的解析(Schema.decodeUnknown)和编码(Schema.encodeSync)。支持 Schema.transform 与 Schema.transformOrFail 做格式转换,并可用 minLength、maxLength、pattern、startsWith、positive、greaterThanOrEqualTo、lessThanOrEqualTo、int、multipleOf、filter 等细化约束。

使用方式:从 @effect/schema 导入 Schema,先定义 schema,再用 Schema.Schema.Type 推断 TypeScript 类型;解析外部数据时在边界调用 decodeUnknownSync 或 decodeUnknown,编码时用 encodeSync。与 Effect 集成时,可在 Effect.gen 中 yield 解析结果,并用 Effect.catchTag("ParseError", ...) 处理解析错误。

适用场景:API 数据校验、配置解析、表单校验、格式转换、类型生成、类型安全数据管道、数据库查询结果校验、环境变量解析等。

限制与注意事项:资料未提供安装命令、版本要求、性能基准或收费信息。需注意避免过度校验内部数据、约束不足、遗漏可选字段、联合顺序不当、未处理解析错误、循环引用、同步校验大数据集、schema 与 TS 类型不一致、缺少转换以及暴露内部类型等常见问题。