1. ホーム
  2. typescript

[解決済み] TypeScriptでグローバル変数を作成する

2022-03-04 05:26:34

質問

JavaScriptでは、このようにすればいいのです。

 something = 'testing';

そして、別のファイルでは

 if (something === 'testing')

を持つことになります。 something が定義されています(正しい順序で呼び出されている限り)。

TypeScriptでそれを行う方法がわからないようです。

私が試したのはこれです。

.d.tsファイルで。

interface Window { something: string; }

そして、私のmain.tsファイルに。

 window.something = 'testing';

を、別のファイルに書いてください。

 if (window.something  === 'testing')

そして、これは機能します。 しかし、私は window. の部分だけで、私の something はグローバルでなければなりません。TypeScriptでそれを実現する方法はありますか?

(誰かが興味を持っている場合に備えて、私は本当に私のアプリケーションのための私のロギングを設定しようとしています。 私は log.Debug オブジェクトをインポートしたり作成したりすることなく、任意のファイルから取得できます)。

どのように解決するのですか?

さて、これはおそらくあなたがしたことよりもっと醜いですが、とにかく...

でも、私も同じだから......。

これを純粋なTypeScriptで行うにはどうすればいいかというと eval 関数は、次のようになります。

declare var something: string;
eval("something = 'testing';")

そして後で、あなたは

if (something === 'testing')

これは、TypeScriptがコンパイルを拒否することなく命令を強制的に実行するためのハックに過ぎず、私たちは declare var TypeScriptが残りのコードをコンパイルできるようにするため。