关于 arktype-validation
arktype-validation 是面向 TypeScript 项目的 ArkType 验证技能,适用于定义模式、运行时校验和类型推断。它涵盖字符串表达式、转换及作用域等用法。
主要功能
- 01使用字符串表达式定义模式
- 02运行时数据校验与类型推断
- 03支持转换、约束和自定义验证
- 04提供作用域、泛型与模式匹配
- 05校验环境变量及 Vite 构建环境
适用场景
- 01校验 API 请求与响应数据
- 02解析并验证 JSON 字符串
- 03验证表单输入和环境变量
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill arktype-validation安装后在 Claude Code 中输入/arktype-validation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/common-patterns.mdmorphs-and-scopes.mdschema-types.md详细介绍
ArkType 验证
概览
ArkType 是一个原生支持 TypeScript 的运行时验证库,使用与 TypeScript 语法相似的字符串表达式定义架构,并提供编辑器自动补全、语法高亮和经过优化的验证器。适用于构建类型安全的 API、验证 JSON 负载,或用更符合 TypeScript 风格的方案替换 Zod。不适用于需要兼容 Zod 生态系统或输出 JSON Schema 的项目。
包: arktype
快速参考
| 模式 | 用法 |
|---|---|
type({ key: "string" }) | 定义对象架构 |
type("string") | 基本类型 |
"string.email", "string.url" | 内置字符串验证器 |
"string.trim", "string.lower" | 内置字符串转换(变换) |
"string.json.parse" | 将 JSON 字符串解析为经过验证的对象 |
"number > 0", "string >= 1" | 内联约束 |
"string | number" | 联合类型 |
"'a' | 'b' | 'c'" | 字符串字面量联合 |
"string[]" | 数组类型 |
"key?": "string" | 可选属性 |
"key = 'default'" | 默认值 |
.pipe(), .to() | 转换输出(变换) |
.narrow() | 自定义验证(类似 Zod refine) |
.pick(), .omit() | 选择对象属性 |
.merge() | 合并对象类型 |
scope({...}).export() | 可跨引用的命名类型作用域 |
type("<t>", { box: "t" }) | 泛型类型定义 |
type.errors | 错误处理(检查 instanceof type.errors) |
.assert(data) | 输入无效时抛出异常,而不是返回 |
"(number % 2)#even" | 品牌标记 — 仅类型层面的验证标记 |
"0 <= number <= 100" | 简洁的范围约束 |
configure() | 全局默认值(来自 arktype/config) |
match() | 类型安全的模式匹配(2.1) |
"+" : "reject" | 内联处理未声明的键 |
arkenv({ PORT: "number" }) | 类型安全的环境变量验证(ArkEnv) |
arkenvVitePlugin(Env) | Vite 构建时环境变量验证 |
常见错误
| 错误 | 修正 |
|---|---|
使用带括号的 type("string.email()") | 使用 type("string.email")(不带括号) |
使用 === null 检查错误 | 使用 instanceof type.errors |
用 { key: "string?" } 表示可选属性 | 使用 { "key?": "string" }(问号放在键上) |
从 arktype/types 导入 | 从 "arktype" 导入 type 和 scope |
在字符串表达式中嵌套 type() | 使用 scope() 跨引用类型 |
直接使用 .pipe() 而不处理错误 | 对可能抛出异常的操作使用 .pipe.try() |
用 "string.lowercase" 进行大小写转换 | 使用 "string.lower"(也可使用 "string.upper") |
导入 arktype 后再进行配置 | 在导入 arktype 之前导入 arktype/config |
手动解析 process.env | 使用 arkenv() 自动强制转换并验证 |
委派
将 ArkType 模式定义、运行时验证、变形与转换、作用域和类型推断相关任务交给此技能。对于基于 Zod 的验证,请委派给 zod-validation 技能。
参考资料
评论
支持 Markdown