首页 > 解决方案 > 如何使用 JSDoc 注释消除 WebStorm 或其他 JetBrains 产品中的“未解决的函数或方法”警告?

问题描述

在 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 JSUnresolvedFunction在使用函数的正上方使用 a 来禁用警告,但这是一个较差的解决方案。JSDoc 注释可以放置在多个范围内,例如类或函数定义的开头。JSDoc 解决方案还提高了可读性,并在其他非 JetBrains IDE 中有意义。

标签: idewebstormjetbrains-idejsdoc

解决方案


JSDoc 提供了显式注释符号的方法@type

所以在你的例子中它可能是:

/** @type {QueryObjectTypeDef} */
const query = require(...);

通过函数 args 的内联注释也可以实现相同的效果(在 WebStorm 中测试):

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

推荐阅读