一体これらのインタフェースに関連することができるような名前空間活字体は、クラスまたはオブジェクトコードは、名前の競合を回避することができ、一緒に両方の分離スコープにグループ化され、そのため明確なコード構造、容易に追跡すること。内部空間を命名した後、すべてのエンティティは、以下に示すように、外にアクセスするためにexportキーワードの必要性に由来し、デフォルト部によるプライベートです。
名前空間使用率{ エクスポート関数log(MSG){ にconsole.log(MSG)。 } } Util.log(" ストリック")。
一般的なモジュラーパッケージで次のコードに示すように、使用率のインスタント変数と関数:上記活字体名前空間は、二つの部分にコンパイルされます。
VaRの方法。 (関数(有用な){ 関数ログ(MSG){ にconsole.log(MSG); } Util.log = ログ; })(有用 ||(有用= {}))。 Util.log( "ストリック");
内部モジュールの名前空間を持つ用語を活字体1.5 ES6で維持、ので、外部モジュールは、モジュールと呼ばれ、したがって元のモジュールと同じ機能で内部モジュールキーワード名前空間キーワードの存在のために、そのノート。しかし、ES6、CommonJSことを避けるために、UMDモジュールの概念は、公式の推奨名前空間名の混乱に似ています。
分離
名前空間の過度の拡大は、メンテナンスを容易にする際には、個々のファイルにそれを分離する必要があります。たとえば、3つのファイルに名前空間が、コードは最初のutil.tsファイルを次の。
名前空間使用率{ エクスポート関数log(MSG){ にconsole.log(MSG)。 } }
コードは以下のように、第2のファイルがあるvalidator.ts。
名前空間バリ{ エクスポート機能isAcceptable(STR){ 戻り str.length> 1 。 } }
コードは3番目のファイルは、以下に紹介するコンパイル時に必要に外腹斜ファイルコンパイラに通知するための、3つの手順に示されており、それはファイルの先頭に宣言する必要がありますdefault.ts。
/// <基準パス= "util.ts" /> /// <基準パス= "validator.ts" /> STR =ましょう" ABC " 。 もし(Validator.isAcceptable(文字列)){ Util.log(" 成功" ); }
名前空間を含む複数のファイルを処理するときに必要、コンパイルされたコードが正しい順序でロードされていることを確実にすることの2つの方法があります。最初の入力パラメータ--outfileコンパイルコマンドで追加することで示されるように、それはスクリプトファイルの出力とコンパイルするための1つの以上のファイルと続きます。
TSC --outfile デフォルトの.js デフォルト .TS
以下に示すように、第2のスクリプトは、ページ上の正しい順序にHTMLの<script>要素によってコンパイルされます。
< スクリプトSRC = "util.js" > </ スクリプト> < スクリプトSRC = "validator.js" > </ スクリプト> < スクリプトSRC = "にDefault.js" > </ スクリプト>
第二に、エイリアス
以下に示すように、支持体は、名前空間、他の内部の名前空間宣言を、ネストされました。
名前空間の形{ エクスポート名前空間ポリゴン{ エクスポートクラストライアングル{} エクスポートクラススクエア{} } }
そのような名前空間の参照は、キーワードによるインポートのための短いエイリアスを取ることができる場合、次のコードは、図に示します。インポートは、名前空間が含まれている必要があり、右ここで、ロード・モジュール・インポートの構文と混同しないように注意してください。
インポートP = Shape.Polygon。 輸入トライアングル = Shape.Polygon.Triangle。 SQはしましょう = 新しいP.Squareを(); 三角形ましょう = 新しいトライアングル();
こうしてPの値またはトライアングル参照変数を変更する構文糖VAR(下図コード)のインポートは、名前空間に影響を与えないので、コンパイルされたコードにより求めることができます。
VAR P = Shape.Polygon。 VARトライアングル= Shape.Polygon.Triangle。 VaRの SQは= 新しいP.Squareを(); VaRの三角形= 新しいトライアングル();