JSDoc 注释中的 WebStorm 和可选参数

cpr*_*iak 5 jsdoc webstorm

我正在开发一个在特殊 C 环境中运行的 JavaScript 项目。环境有一些我需要使用的功能,我想添加一些虚拟文档文件来提供代码完成和类型检查。基于 StackOverflow 上的另一个答案,我可以执行类似于下面的代码的操作,以仅从注释创建一个函数。

/**
 * @namespace Clib
 */
/**
 * @name Clib#test
 * @function
 * @param {String} [var=''] Some variable.
 */
Run Code Online (Sandbox Code Playgroud)

使用 JSDoc 生成 HTML 文件效果很好,大多数情况下与类型检查和代码完成相同。但是,WebStorm 似乎不理解可选参数,除非有附加代码。

从我上面的例子中,WebStorm 给出了警告,因为它认为

Clib.test();
Run Code Online (Sandbox Code Playgroud)

无效,因为它缺少参数,即使我将参数放在 [] 中并设置了默认值。

现在,如果我要放

Clib.test = function(var1){};
Run Code Online (Sandbox Code Playgroud)

在注释下,然后 WebStorm 识别可选参数。两者都消除了警告

Clib.test();
Run Code Online (Sandbox Code Playgroud)

并在代码完成框中显示var1是可选的。

如果有另一种方式,我宁愿不为这些环境功能中的每一个编写快速模型。

我的注释是否有错误?或者这是 WebStorm 的限制?

谢谢

Gam*_*iac -1

查看 Typescript 定义文件支持。这就是静态分析走向网络风暴的地方。在 webstorm 7 中,Jetbrains 使用它进行静态分析,并没有真正依赖 jsdocs。