我有一个脚本retry.js,其中包含:
function retryAjax(load, count, config) {
}
显然有一个机构,但无关紧要,因为无论我是否在剧本中都有这个问题,都会出现这个问题。
要记录此函数返回的对象,我还有一个辅助-vsdoc.js文件,retry-vsdoc.js:
function RetryAjaxDeferred() {
/// <summary>Returned from retryAjax. A jQuery Ajax Deferred object extended to support failWillRetry()</summary>
this.done = function (success) {
/// <summary>A callback when the Ajax call succeeds.</summary>
/// <param name="success" type="Function">Success callback</param>
}
this.fail = function (error) {
/// <summary>A callback when the Ajax call fails permanently.</summary>
/// <param name="error" type="Function">Fail callback</param>
}
this.failWillRetry = function (willRetry) {
/// <summary>A callback when the Ajax call fails with retries pending.</summary>
/// <param name="willRetry" type="Function">Fail callback</param>
}
};
奇怪的是,如果我删除-vsdoc.js文件,Visual Studio 2012中的Intellisense可以正常用于retry.js(当然,除了它返回的内容我没有真正的帮助)。如果我将-vsdoc.js保留在原位,则Intellisense不再使用retryAjax函数 - 它在输入参数时不会自动完成或显示Intellisense信息。但是,RetryAjaxDeferred函数在Intellisense中变为活动状态。
很明显,-vsdoc.js文件中的某些东西会以某种方式破坏Intellisense for retry.js,而不会破坏它以防止其自身内容消失。我做错了什么?
答案 0 :(得分:0)
找到它 - 在为Visual Studio添加额外的仅限Intellisense的类等时,您需要引用实际的源文件:
/// <reference path="~/ui/retry.js"/>
function RetryAjaxDeferred() {
. . .
现在,当我在其他脚本和页面中引用retry.js时,它及其-vsdoc文件的内容都是Intellisense结果的一部分。