@type 中的 JSDoc 引用对象变量

JSDoc reference object variable in @type

假设我有以下 JS:

let myObj = {
    foo: function(a, b) {},
    bar: function(a) {}
};

我可以在 JSDoc 中引用 myObj 作为类型吗:

/*
 * @param {myObj} param
 */
function (param) {}

阅读 JSDoc @type 文档,它说可以使用符号名称,但我不确定究竟什么才算是“符号”。我在 Whosebug 上看到的所有示例和其他问题都显示使用了 class 名称,但在这种情况下我没有定义 class。

对于更多上下文,我一直在使用 @typedef 定义对象,例如上面的示例,并手动列出所有属性。然而,这很乏味,感觉就像代码重复。我最近发现 PhpStorm 仍然可以识别 return 类型并且有没有 @typedef 标签的代码提示,但我不确定这是 JSDoc 的一部分还是只是 PhpStorm 足够聪明来解决它。

您可以在 myObj 前面添加 @namespace,如下例所示。
然后,您可以使用 obj 名称作为类型将其传递给其他类型定义。
注意:这是 vscode.

但是,obj 名称必须相同
不然不行。