【问题标题】:Attribute on options parameter with JSDoc in WebStorm: "Unresolved variable"WebStorm 中带有 JSDoc 的选项参数的属性:“未解析的变量”
【发布时间】:2013-12-12 15:57:01
【问题描述】:

我的代码中有一个带有 jsdoc 注释的函数,类似于以下代码:

/**
 * Foo function
 * @param {Object} [options]
 * @param {String} [options.foo]
 */
var foo = function (options) {
    if (!options) options = {};
    var foo = options.foo || 'foo';
    // ...
};

我的 IDE WebStorm 将 options.foo 标记为“未解析的变量”。如果我删除 jsdoc 注释,警告就会消失。如何以 WebStorm 获取提示且不再显示此警告的方式记录此功能?

我尝试过的事情:

  • 删除@param {String} [options.foo]
  • @param {?String} [options.foo]
  • @param {String} options.foo
  • if (!options) options = {foo: 'bar'};
  • 最后两个合并。

这是一个错误还是我错过了什么? WebStorm 似乎确实理解了options.foo 参数定义,因为if (!options) options = {foo: 42}; 引发了一个警告,即分配的类型不是字符串。

我正在使用 WebStorm 7.0。

【问题讨论】:

  • 使用{*} 而不是{Object} ``` @param {*} [options] ``

标签: javascript intellij-idea webstorm jsdoc


【解决方案1】:

Webstorm 的文档链接到 jsdoc 3。使用 jsdoc 3,我会像这样记录您的对象:

@param {{foo: string}} options

您尝试执行此操作的方式暗示了像 function (options, options.foo) 这样的函数签名。

here 提供有关如何记录类型的信息。

【讨论】:

  • 在 WebStorm 7.0.1 中也不起作用。但似乎在即将到来的 7.0.3 中工作(在每日构建中检查)
猜你喜欢
  • 2016-09-25
  • 1970-01-01
  • 2021-11-15
  • 2013-08-25
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-17
相关资源
最近更新 更多