経験者向け
GASはECMAScript標準に基づいており、広義のJavaScriptファミリーに属する一種のJavaScriptであるため、当然JSDocも利用可能です。私個人はGASを用いて、主にシンプルで定例的なGoogle Sheetsの処理を行っているため、この程度のニーズであれば、TypeScriptやTSDocを導入する必要はないと感じています。もし、チームや企業で大規模な要件に対応するためにGASを利用されている方がいれば、TSの導入も興味深いところですが、私の現在のニーズでは、JSDocの方が軽量で十分です。
また、私は基本的に自分一人で開発を行っており、チームでGASを共同開発した経験がないため、現時点ではJSDocツールを使ってAPIドキュメントを生成する必要はなく、主に自分自身のためのコメントとして利用しています。特に多くのヘルパー関数に対して有効です。
例えば:
/**
* カラム番号を対応するカラム文字に変換します。
*
* @param {number} columnNumber - 変換するカラム番号(1始まりのインデックス)。
* @return {string} - 対応するカラム文字(例:1 → "A", 27 → "AA")。
*/
function getColumnLetter(columnNumber) {
let letter = "";
while (columnNumber > 0) {
let remainder = (columnNumber - 1) % 26;
letter = String.fromCharCode(65 + remainder) + letter;
columnNumber = Math.floor((columnNumber - 1) / 26);
}
return letter;
}
もちろん、現代のgenAI時代において、私はgenAIで生成したJSDocを元に自分で調整を行っています。最近、リファクタリングや新たな機能追加の際に古いコードを再利用する必要が生じたとき、以前のコードを再度読み返す手間を大幅に省いてくれています。
JSDocを知らない方へ
もしあなたが開発者でありながらJSDocを知らない場合、それは既にTypeScriptを使用しているためかもしれません。JSDocによる型注釈は冗長な面があり、TypeScriptほど強力ではないため、TypeScript公式ではTSDocが推奨されています。もしあなたが開発者でなく、私と同様に何らかのコードを扱う必要があるのであれば、以下に簡単な説明を記します。
JSDocはJavaScriptのコメント標準であり、先述のTSDocのように公式の標準サポートはありません(私の知る限り、TSDocはMicrosoftが主導するコミュニティによって推進されている準標準です)が、JSDocツールを利用してAPIドキュメントを自動生成するため、基本的には大きな差異は生じません。(例えば、Airbnbのスタイルガイドは説明と変数の間に空行を強制しない一方、ESLintのデフォルト設定では空行が必須となっています。)
「/**」という記法は、JSDocツールがこのコメントがJSDocであると認識するための重要なフォーマットです。この標準により、共同開発者やAPI利用者は、関数の機能、引数の型、返り値の型を迅速に理解することが可能となります。
JSDocの公式ドキュメントを通じて文法をさらに詳しく学ぶこともできますし、もしあなたがロウコード開発者であれば、文法を詳細に理解する手間を省き、直接genAIにJSDoc標準に従ったコメントの付与を依頼するのも効率的な方法です。
JSDocの出力ツールとしては、公式のもの(https://jsdoc.app/)のほかに、ESDoc、Documentation.js、Docmaなどがあり、チーム全体の好みに合わせて選択することができます。