Google Apps Script を扱う上で激アツな clasp は、 typescript を書いて google apps に アップロードと同時に変換 できるが、いくつか罠があるのでメモ(version 2.0.1 2019/2/8)
- typescript 上で
importできるが、js変換した際にはimport行が消されるだけ。- 関数や変数を他のモジュール(ファイル)で定義した名前と同じ名前で別ファイルに定義すると、単純に上書きされる。
-
importが複数行になると、消し逃して構文エラーになる(アップロードして実行されるまで気づかない) -
import { A as B }としてもアップロード時に消されるだけなので、実際にはBが定義されていないことになって死ぬ(IDE等で rename するとありがち)
-
export constしたものが他のファイルから import できない- 実際には
export const hoge=がexports.hoge=と変換されるので import どころか同じファイル内でも利用できない。 -
export functionは、しても問題ない。
- 実際には
- いくつかのメソッド (
Array#find等)が gas 上にはなくて実行時エラーになる- "Automatically include polyfill" という issue で紹介されている gasのesメソッド対応一覧 が参考になる
- 何故か
clasp pushを2回しないと gas 上のファイルが書き換わっていないことが多い
解決方法をご存知なら教えてください。。。。