Почему "Участник не должен иметь @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;
};

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

1 ответ

Решение

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

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

Начиная с версии 2.3.6 Closure Linter, ошибка "Элемент <имя> не должно иметь @private JsDoc" будет появляться всякий раз, когда аннотируется член @private без завершающего подчеркивания.

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

/**
 * Stacker class.
 * @constructor
 * @param {frankenstein.app.Dictionary} dictionary Input dictionary for 
 *     stacking.
 */
frankenstein.app.Stacker = function(dictionary) {
  /** @private */ this.dictionary_ = dictionary;
};
Другие вопросы по тегам