まず、私はJavascriptプログラマーではありませんが、私に報告してくれるJSプログラマーがいます。
VS2008に追加されたJavascriptIntellisense機能を機能させることで、動作を改善しようとしています。
具体的には、現在、複雑なデータ構造に強い型付けの類似性を追加する方法を見つけようとしています。
これまでのところ、私はこれを思いついています:
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 = "";
さて、その上で、クラス名(GetDateTimeResponse
)、フィールド名(CurrentDateTime
、など)のインテリを取得し、コメントからフィールドの説明を取得します。しかし、type、mayBeNull、arrayType、integer属性については何も取得しません。コンストラクターにパラメーターを追加し、<param>
コメント、名前、タイプを使用すると、説明が機能します。ただし、integer、mayBeNullなどはまだ何もしません。
何か案は?
これはVS2008でも機能しますか?
とにかく、オブジェクト、数値、または文字列以外の「タイプ」に名前を付けることはできますか(インテリセンスにタイプの配列を実行させたい)
結局のところ、これですべてです。インテリセンスが機能するWebサービスへのJavaScriptクライアントを生成できます。
これに関する私の参照は次のとおりです。
http://weblogs.asp.net/bleroy/archive/2007/04/23/the-format-for-javascript-doc-comments.aspx