たまには遊んでみようかと思い記事をφ(❐_❐✧
そもそもGASってJSDoc書けるのって知ってる?
例えば下記のようなfizzBuzz
をしてくれる関数があったとします。
コメント部分がJSDocですね。
ちなみにChatGPTに作らせました。
/**
* 1から指定された数までの数値に対して、フィズバズルールに基づいた文字列を返す。
* 3の倍数の場合は"Fizz"を、5の倍数の場合は"Buzz"を、3と5の両方の倍数の場合は"FizzBuzz"を返す。
* それ以外の場合は、その数値を文字列として返す。
*
* @param {number} num - フィズバズルールを適用する最大の数値
* @returns {string[]} - フィズバズルールに基づいた文字列の配列
*/
function fizzBuzz(num) {
const result = [];
for (let i = 1; i <= num; i++) {
if (i % 3 === 0 && i % 5 === 0) {
result.push("FizzBuzz");
} else if (i % 3 === 0) {
result.push("Fizz");
} else if (i % 5 === 0) {
result.push("Buzz");
} else {
result.push(i.toString());
}
}
return result;
}
この関数を作った状態でfizzBuzz
を呼び出すと下記のような形で、
補完 + 引数の型と返り値の型が表示されます。
GASエディタを使う場合、とても重宝します。
(VSCodeとかでゴリゴリ書いてる人にとっては当たり前でしょう
ちなみに、ライブラリとしてデプロイするとこんな画面が自動で生成されます。
(正直見辛いので使ってない)
ちょっと遊んでみよう
変数に対してもJSDocで型を呼び出せますが、
その前にJSDocを使わない状態だとどうなるのか
constの場合
代入された値が表示されます
letの場合
型で表示されます
少しいじめてみましょう
typeを使えば型を定義することも可能です。
さっきはconst
を使うと値そのものが表示されていましたが、
今はtypeで指定した型string
になっていますね
じゃあ次、別の型を入れたらどうなるのか
まず、型を与える前
const age = 12;
に対して、ドット演算子を使うと、当然ながらnumber
に対してのプロトタイプチェーンが呼び出されます
そして、string
を与えてみると、、、
string
に対してのプロトタイプチェーンが表示されます。
当然、string
って言ってるのにnumber
じゃないぞ!!
なんて言ってくれません。
とはいえ、こんな使い方も当然できるので、
GASエディタだけでGASを記載している人はぜひ、伝わりやすいスクリプトを書いていただけるといいのかなと思います。
まとめ
いかがでしたでしょうか。
まぁ私は普段TypeScriptとclasp使って作ってるのでアレですが、
GASをGoogle提供のエディタで書いている方は初心者の方が多いイメージなので、
ちょっとした小話でした。
余談
F1キーや右クリックからコマンドパレットが呼び出せますが、
ハイコントラストの切り替えがありました。
微妙(笑)
ちなみに隣のファイルやライブラリペインの色は変わらない。