SuperAPI AI 工具集

fp-either-ref

通用与其它

查看项目

更新于 10-16 05:46

技能介绍

用途:Either 是 fp-ts 中表示“成功或失败”的类型,Right(value) 表示成功,Left(error) 表示失败。适合错误类型重要、且需要链式组合可能失败操作的场景,例如校验、解析、错误处理。

主要能力:创建方面有 E.right、E.left、E.fromNullable(err)(x)(null 转 Left,否则 Right)、E.tryCatch(fn, toError)(把 try/catch 转为 Either)。转换方面有 E.map(变换 Right 值)、E.mapLeft(变换 Left 错误)、E.flatMap(链式,fn 返回 Either)、E.filterOrElse(pred, toErr)(谓词失败时 Right 转 Left)。提取方面有 E.getOrElse(err => default)(取 Right 或默认值)、E.match(onLeft, onRight)(模式匹配)、E.toUnion(either)(返回 E | A,会丢失类型信息)。

使用方式:配合 fp-ts/function 的 pipe 组合。校验示例:validateEmail 在包含 @ 时返回 E.right(s),否则 E.left('Invalid email');链式校验会在第一个错误处停止。也可用 E.tryCatch 包装会抛异常的代码,如 JSON.parse,并自定义错误转换。

与 try/catch 对比:try/catch 的错误不在类型中;Either 把错误显式体现在类型里,便于组合与处理。

限制:资料未提供安装命令、版本要求、性能数据或收费信息。toUnion 会丢失类型信息。链式校验默认在首个错误停止,如需收集全部错误需另行处理。