WebStorm中JSDoc的options参数属性:“未解析的变量”

时间:2013-11-27 06:12:09

标签: javascript intellij-idea webstorm jsdoc

我有一个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获取提示并且不再显示此警告的方式记录此功能?

screenshot

我尝试的事情:

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

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

我正在使用WebStorm 7.0。

1 个答案:

答案 0 :(得分:4)

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

@param {{foo: string}} options

您尝试这样做的方式意味着像function (options, options.foo)这样的函数签名。

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