如何使用 JSDoc 注释消除 WebStorm 或其他 JetBrains 产品中的 "Unresolved function or method" 警告?
How can I use a JSDoc comment to eliminate an "Unresolved function or method" warning in WebStorm or other JetBrains products?
在 WebStorm、PyCharm 和其他 JetBrains 产品中,您可以使用 JSDoc 注释来通知 WebStorm 对象确实具有特定 属性,从而消除警告。
@namespace
或 @property
都适用于普通对象属性,但我找不到适用于函数的 JSDoc 命令。
const query = require(...);
...
Object.keys(record)
.forEach(col => {
query.set(col, record[col]);
});
在上面的代码片段中,.set(...)
未被 WebStorm 识别并产生 Unresolved function or method 警告。
这只是一个例子。我的项目使用多个第三方库,其中许多库都有触发使用警告的对象方法。这些库没有可用的打字稿定义,WebStorm 的文件分析也没有找到它们。
我无法修改查询对象,也无法更改它的导入方式。我可以添加 JSDoc 注释来消除警告吗?我尝试了 @属性、@param、@namespace 的多种变体,和 @member.
备注:
我知道可以通过在函数使用正上方的行中使用 // noinspection JSUnresolvedFunction
来禁用警告,但这是一个较差的解决方案。 JSDoc 注释可以放在多个范围内,例如 class 或函数定义的开头。 JSDoc 解决方案还提高了可读性,并且在其他非 JetBrains IDE 中也有意义。
JSDoc 提供了使用 @type
显式注释符号的方法
所以在你的例子中它可能是:
/** @type {QueryObjectTypeDef} */
const query = require(...);
也可以通过函数参数的内联注释实现相同的效果(在 WebStorm 中测试):
forEach((/* ColTypeDef */ col) => {...})
在 WebStorm、PyCharm 和其他 JetBrains 产品中,您可以使用 JSDoc 注释来通知 WebStorm 对象确实具有特定 属性,从而消除警告。
@namespace
或 @property
都适用于普通对象属性,但我找不到适用于函数的 JSDoc 命令。
const query = require(...);
...
Object.keys(record)
.forEach(col => {
query.set(col, record[col]);
});
在上面的代码片段中,.set(...)
未被 WebStorm 识别并产生 Unresolved function or method 警告。
这只是一个例子。我的项目使用多个第三方库,其中许多库都有触发使用警告的对象方法。这些库没有可用的打字稿定义,WebStorm 的文件分析也没有找到它们。
我无法修改查询对象,也无法更改它的导入方式。我可以添加 JSDoc 注释来消除警告吗?我尝试了 @属性、@param、@namespace 的多种变体,和 @member.
备注:
我知道可以通过在函数使用正上方的行中使用 // noinspection JSUnresolvedFunction
来禁用警告,但这是一个较差的解决方案。 JSDoc 注释可以放在多个范围内,例如 class 或函数定义的开头。 JSDoc 解决方案还提高了可读性,并且在其他非 JetBrains IDE 中也有意义。
JSDoc 提供了使用 @type
所以在你的例子中它可能是:
/** @type {QueryObjectTypeDef} */
const query = require(...);
也可以通过函数参数的内联注释实现相同的效果(在 WebStorm 中测试):
forEach((/* ColTypeDef */ col) => {...})