claspって何?
GAS を管理するための CLI ツール
TypeScriptでGASを実装できる
今までのGASのデメリット
GASはJavaScript ベースの言語でコーディングを行うが、ES2015などの新しい構文に対応していないため、とても開発効率が悪くモジュールを分けることもできない。
テストコードも書けないし、Lintもできない、使い慣れたエディタも使えないという・・
何が嬉しいの?
今までのGASのデメリットを打ち消してくれること
Git でバージョン管理しながらローカルの使い慣れたエディタでコードを書いて、GASにpush して実行するという開発ができる。
もちろん、コーディングの自動補完もできる。
しっかり型を定義できるところが大きい。
プログラムを組むスピードがTSがない場合と比べて爆速です。
型定義はGASを書くスピードを上げるアクセルといっても過言ではないので。
GASに型注釈がつくことで、バグを生みにくくなる。
型定義にジャンプして、引数や返り値の型をチェックできる。
TypeScriptが型で縛ってくれるおかげで「実行 → ログ確認」のフィードバックループを回す回数は格段に減る。
具体的には
- TypeScriptによる実装
- Gitによる構成管理
- Prettierによる自動フォーマット
- TSLintによる静的解析
みたいな感じ。
どうやってGASと紐付ける?
GoogleがAPIとして、提供してくれている。
TSから古いJSへトランスパイル
(ソースコードのコンパイル的なものという認識でOK!)
googleアカウントごとに紐付けできる。
どこにPushする?
紐付けされたGoogleアカウント、対象のスクリプトIDなどを指定して、clasp pushする。
clasp pushすると自動的にGASのスクリプトエディタに反映される。
参考リンク