0

これを含むスクリプト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ファイル内の何かが、retry.jsのIntellisenseを何らかの形で破壊していますが、それ自体の内容が消えるのを防ぐのに十分な破壊はしていません。私は何が間違っているのですか?

4

1 に答える 1

0

見つかりました-Visual Studio用のIntellisenseのみのクラスなどを追加するときは、実際のソースファイルを参照する必要があります:

/// <reference path="~/ui/retry.js"/>
function RetryAjaxDeferred() {
    . . .

これで、他のスクリプトやページで retry.js を参照すると、retry.js とその -vsdoc ファイルの両方の内容が Intellisense の結果の一部になります。

于 2013-03-02T22:48:49.803 に答える