自调用函数中声明的类的 JavaScript Intellisense 在 Visual Studio 中不起作用

标签 javascript visual-studio jsdoc code-completion

我想使用 Visual Studio 的 IntelliSense,但在这种情况下它不起作用。这是我正在尝试做的一个示例:

// IntelliSense doesn't work.
Namespace.Class = (function () {
    /** A class. */
    function Class() {
        /** A method. */
        this.method = function () {
            console.log("test 1");
        };
    }
    return Class;
}());

// Intellisense works.
/** A class. */
Namespace2.Class = function () {
    /** A method. */
    this.method = function () {
        console.log("test 2");
    };
};

IntelliSense 显示内容的示例

不工作:

Doesn't work.

工作:

Works!

注释:

最佳答案

尝试以下代码片段。由于某种未知的原因,Intellisense 将函数的结果推断为 typeof Class 而不仅仅是 Class。要修复它,请再次将类型强制转换回 Class

Namespace.Class = (function () {
  /** A class. */
  function Class() {
    /** A method. */
    this.method = function () {
        console.log("test 1");
    };
  }
  return /** @type {Class} */(/** @type {unknown} */(Class));
}());

关于自调用函数中声明的类的 JavaScript Intellisense 在 Visual Studio 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73226453/

相关文章:

javascript - 简单的重构会消除 react 性

javascript - 为 Math.Random(); 编写测试用例;密码战套路

javascript - 引导电子邮件输入中的 wordpress jetpack 不需要的边框

typescript - 如何使用 jsDoc 在自定义组件中记录此关键字?

javascript - 使用 Google Closure 的 @typedef 标签

jsdoc - 如何使以下划线(_)开头的文件出现在输出中?

javascript - 如何以编程方式通过 Chrome 调试协议(protocol)打破 JavaScript 无限循环?

javascript - 有 Firebug 控制台 -vsdoc.js 吗?

c++ - 在不同的属性表中定义用户宏

visual-studio - 在Visual Studio 11中复制一行代码的快捷方式