Ide 如何使用JSDoc注释来消除“注释”;未解析的函数或方法“;WebStorm或其他JetBrains产品中的警告?

Ide 如何使用JSDoc注释来消除“注释”;未解析的函数或方法“;WebStorm或其他JetBrains产品中的警告?,ide,webstorm,jetbrains-ide,jsdoc,Ide,Webstorm,Jetbrains Ide,Jsdoc,在WebStorm、PyCharm和其他JetBrains产品中,您可以使用JSDoc注释通知WebStorm对象确实具有特定属性,从而消除警告 无论是@namespace还是@property都适用于普通对象属性,但我找不到适用于函数的JSDoc命令 const query = require(...); ... Object.keys(record) .forEach(col => { query.set(col, record[col]); });

在WebStorm、PyCharm和其他JetBrains产品中,您可以使用JSDoc注释通知WebStorm对象确实具有特定属性,从而消除警告

无论是
@namespace
还是
@property
都适用于普通对象属性,但我找不到适用于函数的JSDoc命令

const query = require(...);
...
Object.keys(record)
    .forEach(col => {
        query.set(col, record[col]);
    });
在上面的代码段中,
.set(…)
未被WebStorm识别,并生成未解析的函数或方法警告

这只是一个例子。我的项目使用多个第三方库,其中许多库都有对象方法,可以在使用时触发警告。这些库没有可用的typescript定义,WebStorm的文件分析也无法理解它们

我无法修改查询对象,也无法更改其导入方式。我是否可以添加JSDoc注释来消除警告?我尝试了@property、@param、@namespace和@member的多种变体

笔记:
我知道可以通过在函数使用正上方的行上使用
//noinspection jsunsolvedfunction
来禁用警告,但这是一种较差的解决方案。JSDoc注释可以放在多个范围中,例如类或函数定义的开头。JSDoc解决方案还提高了可读性,并在其他非JetBrains IDE中具有意义。

JSDoc提供了使用
@type

因此,在您的示例中,它可能是:

/** @type {QueryObjectTypeDef} */
const query = require(...);
使用函数args的内联注释也可以达到相同的效果(在WebStorm中测试):

forEach((/* ColTypeDef */ col) => {...})

我想在导入上面添加
/**@type{…}*/
应该可以。这个建议很有效。对于上面的示例代码,我需要添加
/**@type{Object}查询@属性{Function}query.set*/
直接位于
const query=require…
上方。如果你想写下你的评论作为回答,我会接受,否则我会自己回答。谢谢,我添加了一个更详细的回答