1

首先,我不是 Javascript 程序员,但我确实有 JS 程序员向我报告。

我正在尝试通过让添加到 VS2008 的 Javascript Intellisense 功能工作来改进我们的工作方式。

具体来说,现在我正试图弄清楚如何将强类型添加到复杂的数据结构中。

到目前为止,我想出了这个:

GetDateTimeResponse = function GetDateTimeResponse() {
/// <summary>The return value from GetDateTime</summary>
/// <field name="CurrentDateTime" type="String" mayBeNull="false">The current date time, ISO8601 format UTC</field>
/// <field name="ListOfStrings" type="Array" arrayType="String" mayBeNull="true">An array of strings</field>
/// <field name="SubTypeList" type="Array">An array of complex types</field>
/// <field name="AnInteger" type="Number" integer="true">An integer</field>
/// <field name="AFloat" type="Number">A float</field>
};

GetDateTimeResponse.prototype = {
    CurrentDateTime: "",
    ListOfStrings: new Array(),
    SubTypeList: new Array(),
    AnInteger: 0,
    AFloat: 0.0
};

这是一个实验性的“类”,用于处理来自测试 SOAP/JSON 服务的响应。

WSDL 引用了一个模式,该模式包含(应该是)匹配类型:

<xs:element name="GetDateTimeResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="CurrentDateTime" type="xs:dateTime"/>
            <xs:element name="ListOfStrings" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="SubTypeList" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="IDFIeld" type="xs:int"/>
                        <xs:element name="DisplayName" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="AnInteger" type="xs:int"/>
            <xs:element name="AFloat" type="xs:float"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

我们使用 jQuery 与服务进行通信,我想编写辅助方法来获取和返回该“类型”的对象。

它有点工作。如果我创建 js 文件,/// <reference/>则包含该定义的文件然后此代码在一定程度上起作用:

var bob = new GetDateTimeResponse();

bob.CurrentDateTime = "";

现在,我得到类名GetDateTimeResponseCurrentDateTime但我没有得到任何类型、mayBeNull、arrayType 和整数属性。如果我向构造函数添加一个参数,并使用<param>注释、名称、类型和描述工作。但是整数、mayBeNull 等仍然什么都不做。

有任何想法吗?

这甚至在VS2008中有效吗?

无论如何命名对象,数字或字符串以外的“类型”(我想让智能感知做类型数组)

最终,这一切都是为了我们可以为具有工作智能感知的 Web 服务生成一个 javascript 客户端。

我对此的参考是:

http://weblogs.asp.net/bleroy/archive/2007/04/23/the-format-for-javascript-doc-comments.aspx

4

0 回答 0