👏

Google apps scriptでの型定義

2024/07/05に公開

公式で型が定義されてない場合でもコードアシスト使いたい場合の定義方法

参考先: 公式
参考先: qiita

@typedef@propertyを使用する

以下定義サンプル

doGetのイベント

script.gs
/**
 * @typedef ApiEventGet
 * @property {string} queryString
 * @property {Object<string, string>} parameter
 * @property {Object<string, string[]>} parameters
 * @property {number} contentLength
 */

/**
 * @param {ApiEventGet} e
 */
function doGet(e) {
  console.log(e.queryString);
}

フォーム受信時のイベントの型定義

script.gs
/**
 * @typedef ApiFormSubmittedEvent
 * @property {{[key:string]: string[]}} namedValues
 * @property {SpreadsheetApp.Range} range
 * @property {string} triggerUid
 * @property {string[]} values
 * 
 * @see https://developers.google.com/apps-script/guides/triggers/events?hl=ja
 */

型の拡張

script.gs
/**
 * ベースタイプ1
 * @typedef A
 * @property {string} count
 */

/**
 * ベースタイプ2
 * @typedef B
 * @property {string} name
 */

/**
 * AとBのプロパティを持つC(拡張された型)
 * @typedef {A & B} C
 */

Discussion