ide - 如何使用 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 中有意义。
解决方案
JSDoc 提供了显式注释符号的方法@type
所以在你的例子中它可能是:
/** @type {QueryObjectTypeDef} */
const query = require(...);
通过函数 args 的内联注释也可以实现相同的效果(在 WebStorm 中测试):
forEach((/* ColTypeDef */ col) => {...})
推荐阅读
- mongodb - 将 MongoDB 作为源连接到 Kafka 时出错
- html - 为什么我的横幅图片下方有一条白线?
- reporting-services - 如何在 SSRS 2017 中隐藏帮助菜单
- javascript - 单击按钮后使用 jscolor.js
- java - 有什么方法可以从 JEditorPane 上显示的网站获取响应?
- model - UPPAAL SMC 激励示例
- azure - 在逻辑应用中限制 APIM IP 时无法通过 APIM 访问逻辑应用
- javascript - 与 >> 运算符的简单 for 循环之间的区别
- amazon-cognito - Auth0 作为前端登录 Cognito 用户
- c# - EntityFrameworkCore PostgreSQL Left Join with where not working