@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 名称必须相同。
不然不行。
假设我有以下 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 名称必须相同。
不然不行。