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 上のファイルが書き換わっていないことが多い
解決方法をご存知なら教えてください。。。。