下面代码中company
作为字符串的正确JSDdoc声明是什么?
fetch('https://api.github.com/users/mdo').then(res => res.json()).then(res => {
console.log(res.company);
});

我使用WebStorm,可以理解地将company
强调为Unresolved variable
:
如果我添加
/** @namespace bogus.company **/
文件中的任何地方,WebStorm都很高兴,但这没有用:
这是WebStorm中的错误,还是我错过了一些关于JSDoc声明应该如何工作的内容?
JSDoc是否应该用于此用例?
答案 0 :(得分:0)
如果您检查unresolved javascript variable
的检查,则可以取消选中Report undeclared properties as error
选项。
我喜欢这样做:
/**
* @param {Object} res
* @property {String} company
*/
function myOutput(res) {
console.log(res.company);
}
fetch('https://api.github.com/users/mdo')
.then(myToJson)
.then(myOutput);
但对于小型匿名函数,我甚至都不会打扰。这是一个微弱的警告,所以关闭检查或学习与它一起生活,我会说。也可以在匿名函数中填充/** @param {*} something */
,但通常只会降低可读性。
另一个选择是使用匿名函数在内容根目录下的某处创建一个虚拟文件soomething.js
,如下所示:
(() => {
return {
"github-users-response" : {
"company" : "sample"
}
}
});
现在,webstorm将确定该公司实际上是在其他文件中定义的。如果您希望将其与项目分开,您甚至可以将其放在不同的内容根目录中。