JSDoc には@readonly
ドックレット タグがあります。
@readonly タグは、シンボルが読み取り専用であることを示します。
例えば:
/**
* The name of the represented principal
* @member {string}
* @readonly
*/
this.name = primaryName;
ただし、私が実際に伝えて文書化したいのは、パブリック コンシューマはプロパティを読み取り専用として扱う必要があるということですが、メンバーは一定ではありません。
内部コードはそのようなメンバーを変更できますし、実際に変更します。読み取り専用のドックレット タグは API コンシューマ用です。(そして、API が間違って使用された場合、恥を知れ! - しかし、私の懸念ではありません。)
/**
* Update the security token information.
* (This is a made-up example!)
*/
this.updateToken = function (token) { this.name = token.name; }
この概念を JSDoc (タグ) で表現する良い方法はありますか? 特に、
「内部コードがこの読み取り専用メンバーを変更することが期待されます」を表現する良い方法は何ですか?
もちろん、ドキュメントでは、ドックレットタグを除いて、そのような明示的な記述は必要ありません。
私は当初、JSDoc が "@readonly private" などを自明に受け入れることを望んでいましたが、そうではありません。カスタム タグを使用する際の問題は、そのようなタグがローカルに導入され、差し迫った外部の意味や標準テンプレートでの適用がないことです。