SuperAPI AI 工具集

arktype

通用与其它

查看项目

更新于 10-15 21:38

技能介绍

用途:整理 ArkType 运行时校验的 schema 组合模式,覆盖如何命名运行时 schema 值与推断类型、如何构建基于字面量键的可辨识联合类型,常见于命令与事件 schema 的定义。

主要能力:type.or(...) 创建对象变体联合;base.merge(union) 会把基础字段分发合并到每个分支(内部调用 rNode.distribute()),自动识别各分支上字面量不同的键作为判别字段;.merge() 与 .or() 可链式组合,两三个变体适合链式,四个以上适合 base.merge(type.or(...));“...”展开键可把引用类型的属性展开到新对象,但必须是对象的第一个键,否则抛 ParseError;可用 type.enumerated(...CONST_ARRAY) 从 as const 数组派生字符串字面量联合。

使用方式:提取可复用类型时始终用 type() 包裹,便于 .infer、.or()、.merge() 等组合;可选属性用 'key?' 语法,不要用 | undefined,否则会破坏 JSON Schema 转换;运行时 schema 与其推断类型可同名导入,避免人为加 Schema 后缀。合并为浅合并,同键时合并参数覆盖基础类型,不深度合并,且联合的每个分支都必须是对象类型。

限制:工作区字段表达式为纯 JSON,字段只能可空不能可选(拒绝以 ? 结尾的键),数组不能带默认值('string[] = []' 会在解析时抛出),需用 null 表达空值。避免用 JS 对象展开定义基础字段,也应避免为每个变体重复 base.merge(...)。

适用场景:需要运行时校验的命令、事件或配置 schema,以及多服务商模型等按常量数组同步的可辨识联合类型。其他实现细节与运行环境暂未提供。