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

Closure Linter バージョン 2.3.6 の時点で、「メンバー <name> は @private JsDoc を持たないでください」というエラーが@private、末尾のアンダースコアなしでメンバーに注釈が付けられるたびに発行されます。

このコードは、エラーや警告を発行しません。

/**
 * 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 に答える