# @dcl/schemas 中文文档

规范地址：https://npmcn.com/package/%40dcl/schemas/

版本：27\.4\.0
npm 元数据更新时间：2026-10-28T21:05:21.197Z
中文译文更新时间：2026-11-11T17:31:52.928Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dcl/schemas
原文对照：https://npmcn.com/package/%40dcl/schemas/?lang=original
项目主页：https://github.com/decentraland/schemas#readme
源码仓库：https://github.com/decentraland/schemas

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：997 kB，556 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2021-02-11T21:06:22.547Z
- 最新版本发布：2026-10-28T21:05:20.875Z
- 近 30 天下载量：58448（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：720（近 12 个月 84 个）

## 中文简介

基于TypeScript的项目的分权数据结构接口和验证器.

## 安装

```sh
npm install @dcl/schemas
```

也可以使用：`pnpm add @dcl/schemas`、`yarn add @dcl/schemas`、`bun add @dcl/schemas`

## README

# 共性计划

基于TypeScript的项目的分权数据结构接口和验证器.

安装于 :

```bash
npm i @dcl/schemas
```

## 范围验证链的采用(ADR-162)

`AuthLink` 财务报告和审定财务报表 `AuthChain` 确认 `ECDSA_SCOPED_EPHEMERAL` 财务报告和审定财务报表 `ECDSA_EIP_1654_SCOPED_EPHEMERAL`。仅验证链接结构;消费者 仍须验证签名并授权服务、操作和资源 使用范围识别验证器.

在升级后,带有这些类型的链会通过chema enum检查. 服务 不接受范围登录,包括使用 稍后在加密验证时拒绝批准。 这个 因此出错消息从chema enum出错变为校验错误.

一旦这个chemas版本发布,core-libs可以采用这些enum成员并 替换其临时员额 `ScopedAuthLinkType` 定义和铸造。 消费者应 在接受范围登录之前,更新计划及范围认知授权.

## 设计准则

-   跨项目预防类型问题
-   尽快失败, 瞄准编译时间
-   通过运行时帮助保存用户可选性
-   优先执行无费用,允许不依赖进口
-   代码是写过一次,读过几百次

执行决定:

-   主要入境点只应出口类型
-   每个类型也是命名空间
-   类型名称为 PascalCase
-   校验器和计程器是骆驼 Case

### 合作者指南

#### 生成类型、验证符和计划

此库导出类型也起到值的作用 。 这是通过 TypeScript 实现的 [`namespaces`](https://www.typescriptlang.org/docs/handbook/namespaces.html)这意味着从该图书馆进口的每一种类型也可用作JS对象。 这些类型包括两个属性 `schema` 财务报告和审定财务报表 `validate`。 。 。 . `namespaces` 在打字符中可以考虑 "`cost` 进口).

#### 示例类型定义

```ts
// Declare type
export type MyType = {
  value: number;
};

// Declare namespace for the type
export namespace MyType {
  export const schema: Schema<MyType> = {
    type: "object",
    properties: {
      value: { type: number },
    },
    additionalProperties: false,
    required: ["value"],
  };

  export const validate = generateValidator<MyType>(schema);
}
```

MyType 现在可同时用作类型 `const a: MyType` 或作为对象 `MyType.validate(a)`。 。 。 .

小心点 `validate` 有类型 `ValidateFunction<T>` 哪个 `ajv` 自动创建。 在写出新的验证时,总是尝试把它作为ajv验证执行,即使需要自定义代码. 见 [这里](https://ajv.js.org/keywords.html#define-keyword-with-code-generation-function)。 。 。 .

尤其要注意这样使用图书馆,因为 `validator.validate` 函数已丢失,从未返回呼叫者.

```ts
const validator = generateValidator<MyType>(schema);
export const validate = (mt: MyType) =>
  validator.validate(mt) && otherValidations(mt);
```

#### 代码所有权

请在 `src/<team>` 文件夹,也可以将您的团队添加到 [消费者](https://npmcn.com/package/%40dcl/schemas/.github/CODEOWNERS) 存储器,以确保没有人不小心改变它,除非你的团队注意到它.

#### 通报变化

请通过增加整个团队(即:. `@decentraland/dapps`作为拉力请求的审查者.

建议订阅该存储器(使用 `Watch` 功能)),如果使用Dechentrand生态系统的任何内部部分.

#### 作出改变

为了让相关人员和团体了解这些类型的变化,执行了一个Api-extraction进程 [https://api-extractor.com (英语)](https://api-extractor.com/) 创建 [报表文件](https://npmcn.com/package/%40dcl/schemas/report/schemas.api.md) 在承诺之间进行审查。 它被作为公关的一部分 更容易读取.

在提交 PR 之前生成文件, 运行 `npm run refresh-api`。由 runnig 执行 `npm run check-api`。它也验证生成的文件是否与导出的类型相匹配.

## 版本和出版

版本使用Github释放和分解处理.

主分支自动发布到 `@next` 在最终发布之前, dict tag 测试集成 .

## 常见问题

### @dcl/schemas 是什么？

基于TypeScript的项目的分权数据结构接口和验证器\.

### 如何安装 @dcl/schemas？

在项目目录运行 npm install @dcl/schemas，或使用 pnpm add / yarn add / bun add。

### @dcl/schemas 支持 TypeScript 吗？

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

### @dcl/schemas 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @dcl/schemas 可以商用吗？

@dcl/schemas 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @dcl/schemas 的下载量有多少？

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

### @dcl/schemas 还在维护吗？

最新版本 27\.4\.0 发布于 2026/10/29（13 天前）；至今共发布 720 个版本，其中过去 12 个月发布了 84 个；首次发布于 2021/02/12。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

