JSDoc

时间:2018-09-04 07:54:45

标签: class syntax annotations jsdoc accessor

我们为自定义类提供了一个容器对象,但是JSDoc似乎不喜欢我对这些类型的表示法,并用

对其进行注释。
  

“无效的类型语法”。

我正在使用PHP-Storm。

我的JSDoc遵循以下原则:

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

Screenshot of the comment

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

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

为什么第一个property accessor syntax在JSDoc中无效? 使用方括号的访问器在Javascript代码中否则有效,那么为什么在jsdoc批注中无效?

1 个答案:

答案 0 :(得分:2)

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

如果您详细研究这两个链接,您会发现一些事情;

  • 有些有效的名称路径不是有效的js:

    MyConstructor#instanceMember
    MyConstructor~innerMember
    
  • 有效的@type表达式使用非JS语法:

    /** @type {(string|Array)} */
    
  • 在这两个文档中都没有提到使用括号表示法(用于类型/名称空间)。