3

我正在使用 Google Closure Tools 的 gjslint 工具清理我的代码。它报告以下错误:

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 吗?谢谢!

4

1 回答 1

7

Closure Linter 旨在强制执行Google JavaScript 样式指南。JSDoc 标签@private记录如下:

与方法或属性名称上的尾随下划线一起使用,表示该成员是私有的。随着工具的更新以强制执行,尾随下划线最终可能会被弃用@private

@private从 Closure Linter 版本 2.3.6 开始,只要在没有尾随下划线的情况下对成员进行注释,就会发出错误“成员 <name> 不得具有 @private JsDoc” 。

此代码不会发出任何错误或警告。

/**
 * Stacker class.
 * @constructor
 * @param {frankenstein.app.Dictionary} dictionary Input dictionary for 
 *     stacking.
 */
frankenstein.app.Stacker = function(dictionary) {
  /** @private */ this.dictionary_ = dictionary;
};
于 2012-07-25T04:19:46.460 回答