JavaScript intellisense.js 文件

JavaScript intellisense.js file

我的问题是 Visual Studio 中没有出现智能感知,我做错了什么?

我正在尝试创建一个 JavaScript 程序来包装 COM 对象,稍微扩展它并为 COM 对象属性提供智能感知。

JavaScript 文件: jscript.js

function wrapper(inject)
{
    inject.state = 0;
    return inject;
}

智能感知文件: jscript.intellisense.js

function _wrapper()
{
    return {
        /// <field name="state" type="Number">stores state of object</field>
        state:0,
        /// <field name="comprop" type="Boolean">this is a com property</field>
        comprop:true
    }
}

intellisense.annotate(wrapper, _wrapper);

HTML 文件: index.html

<script>
    var com = new wrapper({});

    com.*  // <-- the intellisense should be reflected here but it isn't

</script>

我想出了这个问题,经过长时间的反复试验,我想出了这个解决方案:

尽管 MSDN 说要使用 intellisense.annotate 函数,但我发现让它正常工作的唯一方法是在智能感知文件中完全声明对象。所以我的新智能感知文件如下所示:

jscript.intellisense.js

function wrapper()
{
    /// <summary>Wrapper that works</summary>
    /// <param name="inject" type="String">Inject my COM object into here</param>
    /// <returns type="ComObject" />

    return {
        /// <field name="state" type="Number">stores state of object</field>
        state:0,
        /// <field name="comprop" type="Boolean">this is a com property</field>
        comprop:true
    }
}

没有 intellisense.annotate() 函数调用。这是一个简单得多的解决方案,也是我能找到的唯一一个在不止一个树级别保持智能感知的解决方案。

对我来说,这大部分是未经测试的,如果有人发现这个解决方案有问题,请提供答案,我会留下这个问题。