私の知る限り、ジェネリック変数がパラメーターとして使用されている場合、どのフィールドとメソッドがジェネリック変数にあるかを IntelliSense に伝えることはできません。
変数が配列の場合、次のように定義できます。
function funcWithArrayArg(arrayArg) {
/// <param name="arrayArg" type="Array" elementType="Number">An array of numbers</param>
}
VS2012 では、次のようにオブジェクトに注釈を付けることもできます (以下に示すように、オブジェクト コンストラクターとして使用される関数のフィールドに注釈を付けることができますが、ドキュメントではこのような匿名オブジェクトについて何も述べていません)。
var args = {
/// <field type="Number">Product ID</field>
productID: int
};
2番目のアプローチでは関数の引数に関するインテリセンスが得られず、とにかくVS2010を使用しているため、これらのアプローチはどちらも実際にはあなたが望むことをしません。
カスタムオブジェクトをその関数の引数オブジェクトとして使用するように定義するのが最善の策だと思います.Intellisenseを使用してカスタムオブジェクトをパラメーターとして作成したい場合、他の言語でこれを行う方法です. 次のようになります。
function ProductPreviewArgs(productId, productName, updateDate, saveItems) {
/// <summary>Creates an object for use as the sole argument to the setProductAsPreviewed function</summary>
/// <param name="productId" type="Number" optional="false">The Product ID</param>
/// <param name="productName" type="String" optional="false">The Product Name</param>
/// <param name="updateDate" type="Date" optional="false">The date the product was last updated</param>
/// <param name="saveItems" type="Boolean" optional="false">Specifies whether or not to save the items</param>
/// <returns type="ProductPreviewArgs">An object intended for use as the sole argument to the setProductAsPreviewed function</returns>
/// <field name="productId" type="Number">The Product ID</field>
/// <field name="productName" type="String">The Product Name</field>
/// <field name="updateDate" type="Date">The date the product was last updated</field>
/// <field name="saveItems" type="Boolean">Specifies whether or not to save the items</field>
this.productId = productId;
this.productName = productName;
this.updateDate = updateDate;
this.saveItems = saveItems;
}
returns
ここで、オブジェクトでインテリセンスを取得します (要素に何を入れたかが表示されます)。
setProductAsPreviewed(
その後、新しいオブジェクトを作成する場合は、ここに IntelliSense が表示されます (追加すると、各パラメーターの説明が 1 つずつ表示されます)。
setProductAsPreviewed(new ProductPreviewArgs(
type
要素の属性が実際にそのように機能するかどうかは完全にreturns
はわかりませんが、VS2012 では機能します。ご想像のとおり、この件に関するドキュメントはうっとうしいほどむき出しです。現在、これをテストするためのVS2010のコピーがありません。