Почему это "член не должен иметь @private JsDoc"?


Я очищаю свой код с помощью инструмента gjslint из Google Closure Tools. Он сообщает о следующей ошибке:

Line 15, E:0222: Member "this._dictionary" must not have @private JsDoc

И это код:

/**
 * Stacker class.
 * @constructor
 * @param {frankenstein.app.Dictionary} dictionary input dictionary for stacking.
 */
frankenstein.app.Stacker = function(dictionary) {
  /** @private */ this._dictionary = dictionary;
};

Может ли кто-нибудь объяснить, почему это._dictionary не должен иметь @private JsDoc? Спасибо!

1 3

1 ответ:

Замыкание Линтера предназначено для обеспечения руководство по стилю Google JavaScript. Тег JSDoc @private задокументирован следующим образом:

Используется в сочетании с конечное подчеркивание на имя метода или свойства, чтобы указать, что элемент является частным. Конечные подчеркивания могут в конечном итоге быть устаревшими, поскольку инструменты обновляются для принудительного применения @private.

По состоянию на закрытие Linter версии 2.3.6, ошибка " Member не должна have @private JsDoc " будет выдаваться всякий раз, когда член аннотируется @private без заключительного подчеркивания.

Этот код не будет выдавать никаких ошибок или предупреждений.

/**
 * Stacker class.
 * @constructor
 * @param {frankenstein.app.Dictionary} dictionary Input dictionary for 
 *     stacking.
 */
frankenstein.app.Stacker = function(dictionary) {
  /** @private */ this.dictionary_ = dictionary;
};