Что не так с этим файлом -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.