Что не так с этим файлом -vsdoc?

У меня есть скрипт 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, Intellisense в Visual Studio 2012 прекрасно работает для retry.js (за исключением того, что я не получаю никакой реальной помощи в том, что он возвращает). Если я оставлю -vsdoc.js на месте, функция retryAjax больше не будет доступна Intellisense - она ​​не будет автозаполняться и не отображать информацию Intellisense при вводе своих параметров. Однако функция RetryAjaxDeferred становится активной в Intellisense.

Очевидно, что-то в файле -vsdoc.js каким-то образом нарушает Intellisense для retry.js, но не настолько, чтобы предотвратить исчезновение его собственного содержимого. Что я делаю неправильно?

1 ответ

Решение

Нашел его - вам нужно сослаться на фактический исходный файл при добавлении дополнительных классов Intellisense и т. Д. Для Visual Studio:

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

Теперь, когда я ссылаюсь на retry.js в других скриптах и ​​страницах, содержимое его и его файла -vsdoc является частью результатов Intellisense.

Другие вопросы по тегам