kon*_*rad 4 javascript intellij-idea jsdoc webstorm
我有一个带有 jsdoc 注释的函数,它在我的代码中类似于以下内容:
/**
* Foo function
* @param {Object} [options]
* @param {String} [options.foo]
*/
var foo = function (options) {
if (!options) options = {};
var foo = options.foo || 'foo';
// ...
};
Run Code Online (Sandbox Code Playgroud)
我的 IDE WebStorm 标记options.foo为“未解析的变量”。如果我删除 jsdoc 注释,警告就会消失。如何以 WebStorm 获取提示且不再显示此警告的方式记录此函数?

我尝试过的事情:
@param {String} [options.foo]@param {?String} [options.foo]@param {String} options.fooif (!options) options = {foo: 'bar'};这是一个错误还是我错过了什么?WebStorm 似乎确实理解options.fooparam 定义,因为if (!options) options = {foo: 42};会发出警告,指出分配的类型不是字符串。
我正在使用 WebStorm 7.0。
Webstorm 的文档链接到 jsdoc 3。使用 jsdoc 3,我会像这样记录你的对象:
@param {{foo: string}} options
Run Code Online (Sandbox Code Playgroud)
您尝试这样做的方式暗示了一个函数签名,如function (options, options.foo).