init()関数を使って最初の呼び出しで初期化されるグローバル変数を "tokens"にする必要があります。グローバル変数をtypescriptで一度だけ初期化する方法
Q1。 init()を使って変数を初期化するにはどうすればよいですか? TypeScriptのグローバル変数を初期化するベストプラクティスは何ですか?
Q2。この変数はjsonファイルから初期化されるため、アプリケーションの存続期間中に初めて一度だけ初期化することはできますか?したがって、この変数を別のファイルにインポートすると、jsonファイルを再度読み取る必要はありません。
export var tokens: Token[] = [];
function init() {
if (tokens) return; // already initialized
let tokensJson = fs.readFileSync("./lib/data/tokens.json", "utf8");
let tokensData = JSON.parse(tokensJson);
for (var i = 0; i < tokensData.length; i++) {
tokens.push(new Token(tokensData[i].name, tokensData[i].type));
}
}
クライアントコード:
file1.ts
import { tokens } from "./tokens";
for (var i = 0; i < tokens.length; i++)
...
file2.ts
import { tokens } from "./tokens";
for (var i = 0; i < tokens.length; i++)
...
私は本当に感謝あなたは私のアイデアやグローバル作成の最高のパターンを与えることができれば一度初期化されるが、TypeScriptの異なるファイルから使用できる静的モジュール変数。