# @flexent/pointer 中文文档

规范地址：https://npmcn.com/package/%40flexent/pointer/

版本：2\.22\.1
npm 元数据更新时间：2026-11-13T14:16:03.394Z
中文译文更新时间：2026-11-15T04:51:05.672Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40flexent/pointer
原文对照：https://npmcn.com/package/%40flexent/pointer/?lang=original

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

- 包体积（解压后）：18.9 kB，14 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2022-10-05T13:18:56.104Z
- 最新版本发布：2026-11-13T14:16:03.168Z
- 近 30 天下载量：2125（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：43（近 12 个月 40 个）

## 中文简介

简单对象通过 JSON 获取/设置 指向或点限定格式

## 安装

```sh
npm install @flexent/pointer
```

也可以使用：`pnpm add @flexent/pointer`、`yarn add @flexent/pointer`、`bun add @flexent/pointer`

## README

# 指针

通过简单库获取和设置对象值 [JSON 指针](https://www.rfc-editor.org/rfc/rfc6901.html) 或点限定格式.

## 要点

-   零依赖关系
-   XQ 在浏览器中工作
-   Tidy和紧凑,只有~500字节未压缩
-   快速闪亮

## 使用量

```ts
import * as pointer from '@flexent/pointer';

const object = {
    foo: {
        items: [
            { bar: 'one' },
            { bar: 'two' },
            { bar: 'three' },
        ]
    }
};

// If pointer starts with /, then it's interpreted
// as RFC6901 compliant JSON Pointer
pointer.get(object, '/foo/items/1/bar'); // 'two'

// Otherwise it's a dot-delimited path
pointer.get(object, 'foo.items.0'); // { bar: 'one' }

// Set modifies the object, creating additional objects and arrays as needed
const newObj = {}
pointer.set(newObj, 'foo.items.0.bar', '123');
// newObj is now { foo: { items: [{ bar: '123' }] } }
```

## 光谱

指针旨在实施来自 [RFC6901 (法语)](https://www.rfc-editor.org/rfc/rfc6901.html) 同时,还将它扩大到提供以下特点:

1.  点限制路径 :
    
    ```ts
    get({ foo: { bar: { baz: 123 }}}, 'foo.bar.baz')
    // 123
    ```
    
2.  访问数组内容的通配符语法 :
    
    ```ts
    // Single level
    get({
        users: [
            { name: 'Joe' },
            { name: 'Jane' },
        ]
    }, 'users.*.name');
    // ['Joe', 'Jane']
    
    // Multiple levels
    get({
        items: [
            {
                tags: [{ value: 1 }, { value: 2 }],
            },
            {
                tags: [{ value: 3 }],
            },
        ]
    }, 'items.*.tags.*.value');
    // [ [ 1, 2 ], [ 3 ] ]
    ```
    
3.  将值推入数组 :
    
    ```ts
    const obj = {};
    set(obj, '/items/-', 'foo');
    // { items: ['foo' ] }
    ```

## 常见问题

### @flexent/pointer 是什么？

简单对象通过 JSON 获取/设置 指向或点限定格式

### 如何安装 @flexent/pointer？

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

### @flexent/pointer 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/flexent\_\_pointer 是否存在。

### @flexent/pointer 支持 ESM 还是 CommonJS？

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

### @flexent/pointer 可以商用吗？

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

### @flexent/pointer 的下载量有多少？

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

### @flexent/pointer 还在维护吗？

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

