グローバル変数したい(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を使えば、環境を気にせずに同じ書き方で利用できます。