@ephox/boulder

中文文档
9.0.0发布于 2026/03/31GPL-2.0-or-laterTypeScriptESM + CJS近 30 天下载 4005

基本的 Javascript 对象验证

中文使用文档
文档目录19 节
  1. 从 npm 安装
  2. 运行测试
  3. 巨头 API
  4. 结构Schema.valueOf(验证器)
  5. 结构化学式( schema)
  6. 结构Schema.objOf(外地计划)
  7. 结构Schema.setOF(验证器,计划)
  8. 结构Schema.thunkOf(描述, schemathunk)
  9. 结构Schema.thunkOf(参数, schemaBacon)
  10. 结构Schema.asStruct(标签、 schema、 obj)
  11. 结构Schema.asRaw(标签、 schema、 obj)
  12. FieldSchema.field(钥匙、新钥匙、存在、计划)
  13. FieldSchema. Custom Field(新基,即时器)
  14. 任何数值
  15. 值类型. 个数
  16. 值类型.字符串
  17. 数值 Type.boole
  18. 数值Type.func
  19. 价值类型. post 可删除

说明

Boulder 是一个旨在为验证 JavaScript 对象提供良好语法的项目。 它的目的是当开发者没有正确指定对象时提供有用的反馈. 其另一个目的是明智地处理默认的辩词和可选辩词.

被巨石所暴露的API会不断改变,但它应该始终基于 structure 财务报告和审定财务报表 field 计划. Structure 用于代表一个完整的结构 fields(如编号,数组,对象等). Field 用于代表一个单字段 object (例如:. object.alpha) (中文(简体) ). 通过结合他们, boulder 应当能够指明具有合理复杂性的物体.

安装

boulder 可作为 npm 软件包。 您可以通过 npm 软件包安装 @ephox/boulder

从 npm 安装

npm install @ephox/boulder

使用量

运行测试

boulder 用途 bedrock 进行测试。 测试通过 test 项目中的脚本. 具体来说,

$ yarn test

巨头 API

ephox.boulder.api.StructureSchema

ephox.boulder.api.FieldSchema

ephox.boulder.api.ValueType

注意,还有许多其他的API,但它们往往是在这些构造器上建起的便利功能.

结构Schema.valueOf(验证器)

  • 用于对任何值(阵列、对象、数字等)提供验证。 所传递的论点是 validator,它将把值当作参数并返回 Result.value 如果允许 Result.error 如果它不应该. Result 是一个数据类型,由 katamari。 。 。 .

结构化学式( schema)

  • 用于表示该值是数组中每个项目匹配的数组 schema。 。 。 .

结构Schema.objOf(外地计划)

  • 用于表示一个有匹配字段的对象 fieldSchemas。注意,对象可以有更多的字段,这些字段定义在 schema 中,如果一些字段是 defaulted 或者说 optional,可能没有必要.

结构Schema.setOF(验证器,计划)

  • 用于表示字段匹配一些对象 validator但你不知道他们的确切姓名 这个 schema 用于匹配每个字段的值。 对于一个服务器可能用一个对象进行响应的相位图来说,这是有用的,每个密钥匹配一些其他的ID,并且事先并不为人所知.

结构Schema.thunkOf(描述, schemathunk)

  • 用于表示可以动态计算出的图案. 这对于一个孩子字段需要以与其母字段(如树)相同的处理方式进行处理的递归性计划是有用的. 这个 description 用于简单描述这个计划代表什么,因为在计算DSL时试图引用它可以引起无限循环. 这个 schemaThunk 函数不需要参数,返回 StructureSchema 用来使用.

结构Schema.thunkOf(参数, schemaBacon)

  • (原始内容存档于2018-09-21) (中文(简体) ). Bacon Experum dolor amet flat (简体). Mignon Beak shankle ham chock. 肉丸子T骨肉豆蔻多尔乔尔 威尼生香肠舌头多吃点心 (原始内容存档于2018-03-27). Shankle ribeye alcatra 三尖地起跑. T-bone kielbasa (英语) pork belly 花排米尼干肉卷 沙尔洛因地 玉米牛肉 猪肉卷 猪肚花花花花花花花 鸡肉花花花 bacon里贝耶短腰肉 面条猪排 filet mignon (原始内容存档于2019-10-12). campistick t-bone picanha.

结构Schema.asStruct(标签、 schema、 obj)

  • 带一个 schema 对于对象和对象(obj,并返回 [结构(https://www.npmjs.com/package/@ephox/katamari) 版本中的此天体在 a Result.value 如果它符合计划。 不匹配的,请返回 Result.error 与验证错误。 构造只是每个属性被一个存取器函数所包裹的对象.

结构Schema.asRaw(标签、 schema、 obj)

  • 带一个 schema 对于对象和对象(obj中返回对象的简单版本 Result.value 如果它符合计划。 不匹配的,请返回 Result.error 与验证错误。 此输出不会是 结构。 。 。 .

FieldSchema.field(钥匙、新钥匙、存在、计划)

  • 定义对象设计的字段。 出席情况required | defaulted | asOption | asDefaultedOption)用于确定如何处理字段是否 key 在那里,还有 schema 定义与字段值相匹配的策略。 在输出对象中, newKey 将用作字段名称。 注意,这种方法有许多方便方法,例如: FieldSchema.required('key')。 。 。 .

FieldSchema. Custom Field(新基,即时器)

  • 定义对象的生成输出字段。 这没有计划要求,但可用于取取原始对象的快照,或为每个取出对象的版本创建某种状态,或进行自定义处理.

任何数值

  • 用于表示任何值(阵列、对象、数字等).

值类型. 个数

  • 用于表示数字

值类型.字符串

  • 用于表示字符串

数值 Type.boole

  • 用于代表布尔

数值Type.func

  • 用于表示函数

价值类型. post 可删除

  • 用于表示结构上的值,以便通过Message后发送

版本与发布记录

@ephox/boulder 共发布 79 个版本,首次发布于 2017/09/20;过去 12 个月发布了 1 个版本。

版本发布日期距今
9.0.0latest2026/03/317 个月前
7.1.62024/02/072 年前
7.1.52023/03/153 年前
7.1.32022/11/233 年前
7.1.12022/09/084 年前
7.0.32022/06/294 年前

其他发布通道:rc → 7.0.2-alpha.1。

关于 @ephox/boulder 的常见问题

@ephox/boulder 是什么?

基本的 Javascript 对象验证

如何安装 @ephox/boulder?

在项目目录运行 npm install @ephox/boulder,或使用 pnpm add / yarn add / bun add。

@ephox/boulder 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ephox/boulder 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@ephox/boulder 可以商用吗?

@ephox/boulder 使用 GPL-2.0-or-later 许可。强 Copyleft:分发包含该代码的软件时,整个作品需以兼容的 GPL 许可开源。仅在内部使用、不对外分发时不触发此义务。以上为概括,不构成法律意见,请以许可原文为准。

@ephox/boulder 的下载量有多少?

根据 npm 官方下载统计,@ephox/boulder 在 2026/10/14 – 2026/11/12 这 30 天内被下载 4,005 次,日均约 134 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ephox/boulder 还在维护吗?

最新版本 9.0.0 发布于 2026/03/31(7 个月前);至今共发布 79 个版本,其中过去 12 个月发布了 1 个;首次发布于 2017/09/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。