JSDoc用于函数参数属性+ WebStorm

时间:2017-06-12 08:13:39

标签: javascript webstorm jsdoc jsdoc3

下面代码中company作为字符串的正确JSDdoc声明是什么?



fetch('https://api.github.com/users/mdo').then(res => res.json()).then(res => {
  console.log(res.company);
});




我使用WebStorm,可以理解地将company强调为Unresolved variable

WebStorm underscored property as Unresolved variable

如果我添加

/** @namespace bogus.company **/

文件中的任何地方,WebStorm都很高兴,但这没有用:

WebStorm happy with bogus declaration

这是WebStorm中的错误,还是我错过了一些关于JSDoc声明应该如何工作的内容?

JSDoc是否应该用于此用例?

1 个答案:

答案 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将确定该公司实际上在其他文件中定义的。如果您希望将其与项目分开,您甚至可以将其放在不同的内容根目录中。