我想使用 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 显示内容的示例
不工作:
工作:
注释:
- 由于需要支持 Internet Explorer,我无法使用类声明。
- Visual Studio 中的 JavaScript IntelliSense:https://learn.microsoft.com/en-us/office/dev/add-ins/develop/get-javascript-intellisense-in-visual-studio
最佳答案
尝试以下代码片段。由于某种未知的原因,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/