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