如何避免未声明的变量破坏智能感知

How can I avoid for an undeclared variable breaking Intellisense?

本文关键字:智能 感知 变量 何避免 未声明      更新时间:2023-09-26

是的,我已经可以看到即将出现的注释轨迹,内容为"然后使用声明的变量"。但请耐心等待。

情况是我有一堆中等的JS文件,每个文件都包含一个Dojo小部件。小部件包含对命名空间中各种函数dojodojo在小部件文件的作用域中不存在,因此智能感知会中断。

此处CTRL + [space]自动完成包括预期的this.athis.b

new Object({
    a: NaN,
    b: function YesToIntellisense()
    {
        console.log(this.a); // CTRL+[space] includes this.a and this.b
    }
});

这里CTRL + [space]自动完成缺少this.athis.b

new Object({
    a: dojo.foo(),
    b: function NonIntellisense()
    {
        console.log(this.a); // CTRL+[space] does *not* include this.a and this.b
    }
});

如何避免未声明的变量破坏VS2010中的智能感知?

你需要

在这个javascript文件的顶部有一个/// <reference path="path-to/dojo-file.js" />标签。 查看 http://blogs.msdn.com/b/webdevtools/archive/2007/11/06/jscript-intellisense-a-reference-for-the-reference-tag.aspx 和 http://msdn.microsoft.com/en-us/library/bb385682.aspx

我不确定VS2010。我使用Aptana Studio 3,这就是我修复它的方式:

  1. (在阿普塔纳)有一个名为"项目性质"的设置。在这里我通常检查WebJavaScriptPHP。查看VS2010是否有这样的设置。

  2. 为了避免像"使用未声明的变量"这样的JavaScript警告,我只是简单地设置了js文件的第一行,如下所示:

    /*global var1: false, var2: false, var3:false....*/

看看你是否能在VS2010中找到等效的。

对不起,如果答案没有帮助。我只会发表评论,但我没有足够的代表。祝你好运!