我有一个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 param定义,因为if(!options)options = {foo:42};发出警告,指出的类型不是String.
我正在使用WebStorm 7.0.
解决方法:
Webstorm的文档链接到jsdoc 3.使用jsdoc 3,我会像这样记录你的对象:
@param {{foo: string}} options
您尝试这样做的方式意味着函数签名,如函数(options,options.foo).
有关如何记录类型的信息可用于here.