# @alizeait/unflatto 中文文档

规范地址：https://npmcn.com/package/%40alizeait/unflatto/

版本：1\.0\.3
npm 元数据更新时间：2025-04-01T08:22:43.292Z
中文译文更新时间：2026-11-06T14:20:01.728Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：11.9 kB，10 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2021-01-23T23:56:58.956Z
- 最新版本发布：2025-04-01T08:22:43.140Z
- 近 30 天下载量：3000（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 0 个）

## 中文简介

微小( ~ 210B) 和快平面物体扩展器, 未平面

## 安装

```sh
npm install @alizeait/unflatto
```

也可以使用：`pnpm add @alizeait/unflatto`、`yarn add @alizeait/unflatto`、`bun add @alizeait/unflatto`

## README

# @alizeait/ unflatto (帮助) ![Check](https://github.com/alizeait/unflatto/workflows/Check/badge.svg) ![Coverage](https://img.shields.io/codecov/c/github/alizeait/unflatto)

> 一个小(~210B)和 [快点](https://npmcn.com/package/%40alizeait/unflatto/#readme-benchmarks) 平整对象扩展器, 未平面

使用一个已经平整的对象,并通过扩展键返回一个新的嵌入对象.

它假设钥匙被一个 `.` 默认情况下,但此选项可以更改为任何带有分隔符选项的选项.

## 安装

```bash
$ npm install @alizeait/unflatto
```

## 使用量

```js
import { unflatto } from "@alizeait/unflatto";

const unflattened = unflatto(
{
  "key1.keyA": "valueI",
  "key2.keyB": "valueII",
  "key3.a.b.c": 2,
  "key4": [],
  "key5.a.0": "value1",
  "key5.a.1": "value2",
  "key5.a.2.key1.keyA": "valueI",
  "key5.a.2.key1.keyB.0": 1,
  "key5.a.2.key1.keyB.1": 2,
  "key5.a.2.key1.keyB.2": 3,
  "key5.a.2.key1.keyB.3": 4,
  "key5.b": null,
  "key5.c": undefined,
  "key6": {}
}

/*
{
  key1: {
    keyA: "valueI",
  },
  key2: {
    keyB: "valueII",
  },
  key3: { a: { b: { c: 2 } } },
  key4: [],
  key5: {
    a: [
      "value1",
      "value2",
      {
        key1: {
          keyA: "valueI",
          keyB: [1, 2, 3, 4],
        },
      },
    ],
    b: null,
    c: undefined,
  },
  key6: {},
});
  */

const unflattoCustom = unflatto({
  "key1-keyA": "valueI",
  "key2-keyB": "valueII",
  "key3-a-b-c": 2,
},"-");

/*
  {
    key1: {
      keyA: "valueI",
    },
    key2: {
      keyB: "valueII",
    },
    key3: { a: { b: { c: 2 } } },
  }
*/
```

## 基准

```
Benchmarks:

  flat.unflatten               x 63,827 ops/sec ±0.95% (89 runs sampled)
  @alizeait/unflatto           x 208,279 ops/sec ±0.84% (93 runs sampled)
  obj-unflatten                x 168,569 ops/sec ±0.68% (92 runs sampled)
```

> 运行于 Node.js v12.13.0, 64-bit OS, Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz, 16.0 GB RAM

## 验证

```
Validation:

flat.unflatten               ✔
@alizeait/unflatto           ✔
obj-unflatten                ✘
  Wrongly expands arrays
```

## API 密码

### 解充( 输入: 对象、 分隔符? : 字符串)

回返情况: `Object` | `Array`

返回新的扩展对象/阵列.

## 常见问题

### @alizeait/unflatto 是什么？

微小\( ~ 210B\) 和快平面物体扩展器, 未平面

### 如何安装 @alizeait/unflatto？

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

### @alizeait/unflatto 支持 TypeScript 吗？

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

### @alizeait/unflatto 支持 ESM 还是 CommonJS？

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

### @alizeait/unflatto 可以商用吗？

@alizeait/unflatto 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @alizeait/unflatto 的下载量有多少？

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

### @alizeait/unflatto 还在维护吗？

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

