用途:把 better-result 的错误定义从 v1 的 TaggedError 类式 API 升级到 v2 的工厂式 API。适用于正在从 v1 升级到 v2、存在直接 extends TaggedError 的类、仍使用 TaggedError.match、TaggedError.matchPartial 或 TaggedError.isTaggedError,或需要把构造函数调用改写为对象形式的情况。
主要能力:提供 v1 与 v2 的 API 差异对照,例如 v1 的 class FooError extends TaggedError 对应 v2 的 class FooError extends TaggedError("FooError")<Props>() {};_tag 由工厂生成;new FooError("123") 改为 new FooError({ id: "123", message: "..." });TaggedError.match 改为 matchError,TaggedError.matchPartial 改为 matchErrorPartial,TaggedError.isTaggedError 改为 isTaggedError 或 TaggedError.is。
使用方式:先搜索代码库中的 extends TaggedError,对每个类提取 _tag 字面量、构造参数与运行时属性、计算消息或校验逻辑;改写为 TaggedError("Tag")<Props>(),如有构造逻辑则保留自定义构造函数接收对象并调用 super({...});更新调用点为对象参数;用新的独立辅助函数替换静态辅助方法;更新导入;运行测试并再次搜索旧 API 残留。非简单类应先阅读 references/migration-patterns.md;若存在 opensrc/,可用其确认已安装包暴露的 v2 API。
限制与注意:迁移中易丢失自定义校验逻辑、忘记在 props 中包含 message、只改类声明未改调用点、漏改 matchPartial 或 isTaggedError、未保留时间戳或错误码等额外运行时字段。完成标准为不再有类直接继承旧 v1 基类、迁移类使用 TaggedError("...")<...>()、调用点使用新构造形式、静态辅助调用被替换、导入反映新辅助函数且测试通过。