我们为自定义类提供了一个容器对象,但是JSDoc似乎不喜欢我对这些类型的表示法,并用
对其进行注释。“无效的类型语法”。
我正在使用PHP-Storm。
我的JSDoc遵循以下原则:
/** @type {Container['3rd'].className} */
当我将注释更改为此时,由于注释消失了,因此似乎是有效的:
/** @type {Container.3rd.className} */
为什么第一个property accessor syntax在JSDoc中无效? 使用方括号的访问器在Javascript代码中否则有效,那么为什么在jsdoc批注中无效?
答案 0 :(得分:2)
JSDocs @type表示法不是JavaScript表达式。这是一个JSDoc Namepath表达式。
如果您详细研究这两个链接,您会发现一些事情;
有些有效的名称路径不是有效的js:
MyConstructor#instanceMember
MyConstructor~innerMember
有效的@type
表达式使用非JS语法:
/** @type {(string|Array)} */
在这两个文档中都没有提到使用括号表示法(用于类型/名称空间)。