Сокрытие рядовых от Javascript Intellisense - PullRequest
2 голосов
/ 17 сентября 2009

Можно ли скрыть определенные функции / поля от отображения в раскрывающемся списке javascript intellisense в Visual Studio 2008? Или с помощью javascript документирования XML или именования рядовых определенным образом?

Я видел <private /> в файле jquery vsdoc, который подразумевает именно такое поведение, но не соответствует моим ожиданиям

{
    __hiddenField: 0,
    /// <private />
    increment: function(){
        /// <summary>Increments a private variable</summary>
        __hiddenField++;
    }
}

Но поскольку поля не могут содержать документацию (потому что они не имеют тела), они должны быть задокументированы вверху. Но все равно не работает:

{
    /// <field name="__hiddenField" type="Number" private="true">PRIVATE USE</field>
    __hiddenField: 0,
    increment: function(){
        /// <summary>Increments a private variable</summary>
        __hiddenField++;
    }
}

Невозможно - это вполне возможный ответ, и он будет принят, если вы знаете, что на самом деле это невозможно.

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Я не уверен, как скрыть его от intellisense, но вы всегда можете использовать замыкания, чтобы полностью скрыть переменную, например:

(function(){
    var hiddenField = 0;

    // not sure how you're defining your object; 
    // I'll just assume a global variable
    window.something = {
        increment: function(){
            /// <summary>Increments a private variable</summary>
            hiddenField++;
        }
    }
})();

Это создает анонимную функцию вокруг вашего определения, поэтому window.something.increment () будет работать, а «hiddenField» действительно скрыт.

0 голосов
/ 19 ноября 2009

Я думаю, что для того, чтобы сделать функцию / поле приватным, вы должны добавить дефис перед ее именем.

_increment: function(){
    /// <summary>Increments a private variable</summary>
    __hiddenField++;
}
...