私の VS2015 JavaScript アプリには、JSDoc@typedef
コメントを使用して文書化した REST API から取得した JSON オブジェクトがあります。
/**
* @typedef {Object} JSON_Response
* @property {Number} id
* @property {String} name
* @property {JSON_Response_Tag} tag
*/
/**
* @typedef {Object} JSON_Response_Tag
* @property {Number} id
* @property {String} color
*/
これらの JSON オブジェクトを使用するメソッドの JSDoc コメントでこの型を参照すると、Intellisense ドキュメントを問題なく取得できます。
/**
* @param {JSON_Response} response
*/
function process_response(response) {
// process response here...
}
ただし、これを配列で機能させることはできません-配列にインデックスを付けようとすると、VSがIntellisenseコンテキストを取得できないときに発生する「黄色の三角形」メニューが表示されます。
/**
* @typedef {Object} JSON_Response
* @property {Number} id
* @property {String} name
* @property {JSON_Response_Tag[]} tags
*/
/**
* @param {JSON_Response} response
*/
function process_response(response) {
response.tags[0]. // no intellisense here
}
JSDoc の他の推奨方法である を使用する{Array.<JSON_Response>}
と、VS にresponse
配列であることを通知しますが、その下にあるものには Intellisense を提供しません。Microsoft 独自の XML コメントはこの機能を提供しますが、関数パラメーターに対してのみです。関数が呼び出されるたびにこのドキュメントを追加する必要があるため、オブジェクト内に到達することはできません。
JavaScript の VS Intellisense で、基になる型を使用して配列を文書化する方法はありますか?
コードを書かなければならない場合、副作用を最小限に抑えたい/リリースから除外できるようにしたい.