一部のJSコードをTypeScriptに移行しようとしています。 Revealing Module Patternsとして書かれたいくつかのJavaScriptファイルがあります。ここでは、パターンの減少がある:TypeScriptへの移行。長いモジュールパターンを部分的に分割する方法
var thing = (function() {
var var1, var2;
function init() {
var1 = document.getElementById("var1");
var2 = document.getElementById("var2");
function func1() {
// really long function that needs access to var1
}
function func2() {
// really long function that needs access to var2
}
}
// Our Bootstrap file fires this when ready
BootStrap.DOMReady(init);
return {
Func1: func1,
Func2: func2,
};
})();
しかし、現在func1
とfunc2
は我々が簡単にメンテナンスのために、自分のfunc1.ts
とfunc2.ts
ファイルに「部分的に」したいと思います本当に長い関数です。しかし、initの変数にアクセスする必要があります。
この種の機能を実現するにはどうすればよいでしょうか?理想的には、main.ts
ファイルに取り込むことができる個々の機能のために、より小さなファイル.ts
が必要です。
インポート/エクスポートのルートは必要ですか?
トリプルスラッシュディレクティブでこれを実現でき、スコープを保持することができますか(内部関数が関数スコープを維持する必要があり、トリプルスラッシュをファイルの先頭に定義する必要があるとは限りません)。
このようなこともできますか?
var thing = (function() {
function init() {
/// <reference path="ts/func1.ts" />
/// <reference path="ts/func2.ts" />
}
// Our Bootstrap file fires this when ready
BootStrap.DOMReady(init);
return {
Func1: func1,
Func2: func2,
};
})();
実際に何をやっているのですか?関数を定義することは全く何もしていません。今では関数を "var thing"と同じスコープに移動することができます。 – Lostfields