【发布时间】:2019-09-05 13:54:45
【问题描述】:
在 WebStorm、PyCharm 和其他 JetBrains 产品中,您可以使用 JSDoc cmets 通知 WebStorm 对象确实具有特定属性,从而消除警告。
@namespace 或 @property 都适用于普通对象属性,但我找不到适用于函数的 JSDoc 命令。
const query = require(...);
...
Object.keys(record)
.forEach(col => {
query.set(col, record[col]);
});
在上面的 sn-p 中,.set(...) 无法被 WebStorm 识别并产生 Unresolved function or method 警告。
这只是一个例子。我的项目使用多个第三方库,其中许多库具有触发使用警告的对象方法。这些库没有可用的 typescript 定义,WebStorm 的文件分析也无法识别它们。
我无法修改查询对象,也无法更改它的导入方式。是否可以添加 JSDoc 注释来消除警告?我尝试了 @property、@param、@namespace 和 @member 的多种变体。
注意事项:
我知道可以通过在函数使用正上方的行上使用// noinspection JSUnresolvedFunction 来禁用警告,但这是一个较差的解决方案。 JSDoc cmets 可以放置在多个范围内,例如类或函数定义的开头。 JSDoc 解决方案还提高了可读性,并在其他非 JetBrains IDE 中有意义。
【问题讨论】:
-
我想在导入上方添加
/** @type {...} */应该可以工作 -
这个建议奏效了。对于上面的示例代码,我需要在
const query = require...上方直接添加/** @type {Object} query; @property {Function} query.set */。如果你想写你的评论作为答案,我会接受,否则我会自己做一个答案。 -
谢谢,我添加了更多扩展答案
标签: ide webstorm jetbrains-ide jsdoc