我有一个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。
答案 0 :(得分:4)
Webstorm的文档链接到jsdoc 3.使用jsdoc 3,我会像这样记录你的对象:
@param {{foo: string}} options
您尝试这样做的方式意味着像function (options, options.foo)
这样的函数签名。
有关如何记录类型的信息here。