# @es-joy/jsdoc-eslint-parser 中文文档

规范地址：https://npmcn.com/package/%40es-joy/jsdoc-eslint-parser/

版本：0\.29\.0
npm 元数据更新时间：2026-08-10T22:22:07.346Z
中文译文更新时间：2026-11-13T22:15:09.644Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40es-joy/jsdoc-eslint-parser
原文对照：https://npmcn.com/package/%40es-joy/jsdoc-eslint-parser/?lang=original
项目主页：https://github.com/es-joy/jsdoc-eslint-parser
源码仓库：https://github.com/es-joy/jsdoc-eslint-parser

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

- 包体积（解压后）：203 kB，24 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：^20\.19\.0 \|\| ^22\.13\.0 \|\| \>=24
- 运行依赖：6 个
- 首次发布：2021-05-03T06:45:43.153Z
- 最新版本发布：2026-08-10T22:22:07.161Z
- 近 30 天下载量：3648（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：47（近 12 个月 3 个）

## 中文简介

以 JSDoc 注释和类型作为 AST 支持 JavaScript 的解析器

## 安装

```sh
npm install @es-joy/jsdoc-eslint-parser
```

也可以使用：`pnpm add @es-joy/jsdoc-eslint-parser`、`yarn add @es-joy/jsdoc-eslint-parser`、`bun add @es-joy/jsdoc-eslint-parser`

## README

# @es-joy/jsdoc-slint-parser (英语)

_**这个项目没有经过充分检验,应考虑 实验.**_

这个项目的目的是允许完全 `@babel/eslint-parser` 配置,但与 `comment-parser`\- 基于 JSDoc 块的 AST 和 `jsdoctypeparser` AST 用于 JSDoc在这些街区内打字.

还有一个 `@es-joy/jsdoc-eslint-parser/typescript.js` 解析器 以 `@typescript-eslint/parser`。 。 。 .

希望这能促使ESTree正式接受 这样的AST.

你可以运行我们 `lint-test` 脚本作为示例.

## 使用大小写

1.  使用 [`no-restricted-syntax`](https://eslint.org/docs/rules/no-restricted-syntax) 禁止某些评论或评论类型
2.  向您提供注释或注释类型的可知查询选择器 `contexts` 内 [`eslint-plugin-jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc)

## 附加AST的方法

在使用 Babel ESLint 解析器时,生成了具有以下特性的 AST : `tokens` 打开 `Program` eSLint 以及《公约》 `range` 预计每个阵列 节点.

我们补充AST评论 或者说, `JSDocBlock` AST-by 添加一个 `jsdoc` 属性 改为: `@babel/eslint-parser`\- 没有密码 合适的祖先 持有评论块。 我们相应 更新访问者的密钥,以确保每个密钥的可访问范围 属性, `jsdoc` 被添加,因此可以单独进行可变. 我们也 确保 `comment-parser` 财务报告和审定财务报表 `jsdoctypeparser` 访问者密钥添加到 我们分析员的访客钥匙.

我们加一个 `parent` 每个节点,这样我们就可以 `getJSDocComment` 方法可以 (见下).

难搞的部分 `jsdoc` 财产与确定 _哪个_ JSDoc应当与某一节点相关联。 单位 [`jsdoccomment`](https://github.com/es-joy/jsdoccomment), (中文(简体) ), 我们有一个 `getJSDocComment` 方法,最初由 ESLint 本身开始 确定应在何地进行.

这种对特定结构的注释的检测不是一个小问题. 例如:

```js
/* A */
const /* B */ aFunc = /* C */ function () {};
```

...对于函数表达式,我们可能会在C点寻找JSDoc Block 或B先,但如果不在场,则在A点寻找. 这个 `getJSDocComment` 方法使用这样的算法,我们称之为我们 解析器当前在每个节点上。 如果在B点没有JSDoc区块或 C. 节点 `aFunc` `VariableDeclaration` 节点应该得到JSDoc 在 A 点上加块而不是 `FunctionExpression` 获得它.

虽然抽象地说,它似乎更适合 `FunctionExpression`, (中文(简体) ), 找到JSDoc块的实际目的更多地涉及立场和 代码生成, 如果在最接近的位置, 代码生成应最容易操作 到它的实际位置.

请注意,《公约》第2条第1款(a)项和(b)项对所生产的AST作了说明 [教学](https://github.com/es-joy/jsdoccomment) 项目。 此外, 此解析器添加到 `Program` 节点, a `jsdocBlocks` 属性(对应 改为 `comments` 但仅限未加附件的注释块),同时加上 `commentsIndex` 反映本联合文件索引的整数偏好 块与 `comments` 阵列.

## 安装

```shell
npm i -D @es-joy/jsdoc-eslint-parser
```

## 解析选项

### `mode` (默认为"jsdoc")

这个 `jsdoctypeparser` 模式, `jsdoc`, (中文(简体) ), `typescript`, (中文(简体) ), `closure`,或 `permissive`。 。 。 . 一般不建议采用后者.

### `maxLines` (默认:1)和 `minLines` (默认: 0)

确定从结构的线条来看,我们应该允许 寻找评论块.

### `indent` (默认:"")

目前已曝光,但可能不应更改,而且可能已 未来被删除。 它表示解析时使用的缩进 评论。 (今后可能需要自动侦查。 )

### `sourceType` (违约) `@babel/eslint-parser`默认值)

用于表示 `script` 或者说 `module`

### `babelOptions` (默认:无)

传递给 Babel 的额外选项( 如果不使用 `typescript` (掌声).

### `...parserOptions` (默认:无)

任何其他选项都会传递到解析器上 .

## 更改日志

更改日志可见于 [变化情况](https://npmcn.com/package/%40es-joy/jsdoc-eslint-parser/CHANGES.md)。 。 。 .

## 作者和执照

[布莱特·扎米尔](http://brett-zamir.me/) 财务报告和审定财务报表 [捐助者](https://github.com/es-joy/jsdoc-eslint-parser/graphs/contributors)。 。 。 .

麻省理工学院的执照,请参看 [利马](https://npmcn.com/package/%40es-joy/jsdoc-eslint-parser/LICENSE-MIT.md) 文档.

## 常见问题

### @es-joy/jsdoc-eslint-parser 是什么？

以 JSDoc 注释和类型作为 AST 支持 JavaScript 的解析器

### 如何安装 @es-joy/jsdoc-eslint-parser？

在项目目录运行 npm install @es-joy/jsdoc-eslint-parser，或使用 pnpm add / yarn add / bun add。

### @es-joy/jsdoc-eslint-parser 支持 TypeScript 吗？

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

### @es-joy/jsdoc-eslint-parser 支持 ESM 还是 CommonJS？

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

### @es-joy/jsdoc-eslint-parser 需要什么版本的 Node\.js？

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

### @es-joy/jsdoc-eslint-parser 可以商用吗？

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

### @es-joy/jsdoc-eslint-parser 的下载量有多少？

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

### @es-joy/jsdoc-eslint-parser 还在维护吗？

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

