グローバル変数したい(globalThis

1(globalThis as Record<string, unknown>)["myFn1"] = myFn1;
2(globalThis as Record<string, unknown>)["myFn2"] = myFn2;
3(globalThis as Record<string, unknown>)["myFn3"] = myFn3;
4(globalThis as Record<string, unknown>)["myFn4"] = myFn4;
5
6// もしくは
7const g = globalThis as Record<string, unknown>;
8g["myFn1"] = myFn1;
9g["myFn2"] = myFn2;

globalThisは、ECMAScript標準の環境に依存しないグローバル変数の置き場所です。 src/index.tsのようなエントリーポイントとなるファイルで、 ほかのモジュールからexportした関数をglobalThisに登録しておくとよいです。

とくにGASでは、rollupでバンドルすると、関数は内部スコープに閉じ込められてしまいます。 そのままではGASから参照できませんが、globalThisに登録することで、外から呼べるようになります。

注釈

JavaScriptでは、ブラウザ環境だとwindow、Node環境だとglobal、 のように、環境によってグローバル変数名が違います。 globalThisを使えば、環境を気にせずに同じ書き方で利用できます。