# @canonical/token-types 中文文档

规范地址：https://npmcn.com/package/%40canonical/token-types/

版本：0\.44\.0
npm 元数据更新时间：2026-10-23T01:40:05.670Z
中文译文更新时间：2026-11-09T05:47:47.217Z
软件包许可：LGPL-3\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40canonical/token-types
原文对照：https://npmcn.com/package/%40canonical/token-types/?lang=original
项目主页：https://github.com/canonical/pragma-core#readme
源码仓库：https://github.com/canonical/pragma-core

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

- 包体积（解压后）：35.1 kB，15 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-03-11T10:11:33.074Z
- 最新版本发布：2026-10-23T01:40:05.282Z
- 近 30 天下载量：5916（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：21（近 12 个月 21 个）

## 中文简介

Canonical 设计标志工具的共享类型 .

## 安装

```sh
npm install @canonical/token-types
```

也可以使用：`pnpm add @canonical/token-types`、`yarn add @canonical/token-types`、`bun add @canonical/token-types`

## README

# @ canonical/ token 类型

用于Canonical设计符号工具的共享类型Script类型. 这个包定义了Terrazzo CSS插件(生产者)和LSP(消费者)之间的JSON合同—— `tokens.json` 工艺品格式.

## 安装

```bash
bun add -d @canonical/token-types
```

## 使用量

导入工作类型 `tokens.json` 文物:

```ts
import type { Artifact, ArtifactToken, ArtifactEnvelope } from "@canonical/token-types";

function loadTokens(json: ArtifactEnvelope): Artifact {
  if ("tokens" in json) return json.tokens; // wrapped envelope
  return json;                               // flat artifact
}
```

使用运行时守护以缩小 DTCG 类型字符串 :

```ts
import { isKnownDtcgTokenType } from "@canonical/token-types";

if (isKnownDtcgTokenType(token.type)) {
  // token.type is narrowed to KnownDtcgTokenType
}
```

## 出口

### 类型

| 类型 | 说明 |
| --- | --- |
| `Artifact` | 完整的文物:CSS可变名称为符元数据. |
| `ArtifactToken` | 将元数据、解析值、源位置、推导和登记字段合并在一起的单一符号条目. |
| `ArtifactTokenInit` | 建造由DTCG来源的文物代币的输入合同. |
| `DerivedArtifactTokenInit` | 构建一个衍生或插件生成的符号的输入合同 . |
| `ArtifactEnvelope` | 联邦制 `Artifact` 财务报告和审定财务报表 `WrappedArtifactEnvelope` ——插件也可能发出. |
| `WrappedArtifactEnvelope` | 人工载荷 `version`, (中文(简体) ), `generator`,以及 `tokens` 字段. |
| `ArtifactDeclaration` | 一个声明站点(选择器、文件、行、附加规则). |
| `ArtifactAtRule` | 规则上下文(名称+前奏). |
| `DtcgTokenType` | 技术合作组 `$type` 值 —— 已知的有字符串逃生舱门的文字,用于前向相容. |
| `KnownDtcgTokenType` | 已知的 DTCG 类型文字 (`color`, (中文(简体) ), `dimension`, (中文(简体) ), `number`(见a/c.5/49/70,附件). |
| `TokenTier` | 等级分类: `"primitive"`, (中文(简体) ), `"semantic"`,或 `"derived"`。 。 。 . |
| `ArtifactTier` | 由文物所携带的分级字符串——已知分级外加一串出逃舱. |
| `DerivationKind` | 衍生公式类型( :`"hover"`, (中文(简体) ), `"active"`, (中文(简体) ), `"disabled"`, (中文(简体) ), `"delta"`(见a/c.5/49/70,附件). |

### 运行时间

| 导出 | 说明 |
| --- | --- |
| `KNOWN_DTCG_TOKEN_TYPES` | `const` 数组所有识别的 DTCG 类型文字. |
| `isKnownDtcgTokenType(value)` | 将字符串缩小到 `KnownDtcgTokenType`。 。 。 . |

## 发展

```bash
bun run build     # Compile (tsc)
bun run test      # Run type-level tests
bun run check     # Type check
```

## 常见问题

### @canonical/token-types 是什么？

Canonical 设计标志工具的共享类型 \.

### 如何安装 @canonical/token-types？

在项目目录运行 npm install @canonical/token-types，或使用 pnpm add / yarn add / bun add。

### @canonical/token-types 支持 TypeScript 吗？

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

### @canonical/token-types 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @canonical/token-types 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @canonical/token-types 可以商用吗？

@canonical/token-types 使用 LGPL-3\.0 许可。弱 Copyleft：作为库被调用时通常不要求开源你自己的代码，但修改库本身需以 LGPL 开源；前端打包合并后的适用边界存在不同理解。以上为概括，不构成法律意见，请以许可原文为准。

### @canonical/token-types 的下载量有多少？

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

### @canonical/token-types 还在维护吗？

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

