本技能聚焦 Effect 的 Config 配置加载与 Schema 校验、转换,适合在边界处校验请求体、参数或外部输入,并以类型安全方式加载环境配置。
主要能力包括:用 Config 读取环境配置,如 Config.nested、Config.all、Config.string、Config.number、Config.option;用 Schema 定义结构并解码,如 S.Struct、S.decodeUnknown;通过 transform 与 brand 处理品牌类型。资料给出示例:Server 配置用 Config.nested("SERVER")(Config.all({ host: Config.string("HOST"), port: Config.number("PORT") }));User 用 S.Struct({ id: S.Number, name: S.String }) 定义,decodeUser 用 S.decodeUnknown(User)(u) 解码;IsoDate 以 S.String 表示,在需要处再转换为 Date。
使用指引:schema 尽量靠近边界,核心逻辑保持有类型;品牌类型(Email、PositiveInt)用 transform/brand 辅助;尽早校验,把领域错误集中映射到一处。注意避免把 unknown 直接传入核心逻辑,应先解码;避免大量临时校验代码,集中到 Schema。
资料提供本地源码参考路径 docs/effect-source/,关键文件为 Config: docs/effect-source/effect/src/Config.ts 与 Schema: docs/effect-source/schema/src/Schema.ts,并给出 grep 搜索示例,如 grep -F "Config.string" docs/effect-source/effect/src/Config.ts、grep -F "decodeUnknown" docs/effect-source/schema/src/Schema.ts、grep -rF "brand" docs/effect-source/schema/src/。工作流建议:确定所需 API,搜索源码,研究类型与校验模式,查看测试用例,再依据真实实现编写代码,并以真实源码优先于文档和假设。
限制方面:资料未提供收费、价格、平台、版本或效果数据,相关事实暂未提供;引用与代理技能概述等外部链接仅为参考,具体行为需以本地 Effect 源码为准。