JSDoc中属性访问器的“无效类型语法”

问题描述 投票:0回答:1

我们的自定义类有一个容器对象,但JSDoc似乎不喜欢我对这些类型的表示法并对它们进行注释

“无效的类型语法”。

我正在使用PHP-Storm。

我的JSDoc是根据这个原则:

/** @type {Container['3rd'].className} */

Screenshot of the comment

当我将注释更改为此时,它似乎是有效的,因为注释消失了:

/** @type {Container.3rd.className} */

为什么在JSDoc中第一个property accessor syntax不被认为有效?使用括号的访问器在Javascript代码中是有效的,那么为什么不在jsdoc注释中呢?

class syntax annotations jsdoc accessor
1个回答
2
投票

JSDocs @type表示法不是JavaScript表达式。这是一个JSDoc Namepath表达。

如果你仔细研究这两个链接,你会看到一些东西;

  • 有效的名称路径不是有效的js: MyConstructor#instanceMember MyConstructor~innerMember
  • 有一些有效的@type表达式使用非JS语法: /** @type {(string|Array)} */
  • 在这些文档中没有提到使用Bracket表示法(对于类型/名称空间)。
© www.soinside.com 2019 - 2024. All rights reserved.