私はインターネットのさまざまな記事で多くを見てきましたが、名前空間は古くて邪悪なものであると多く聞いてきました。私は、ネームスペースの代わりにモジュールローダーでモジュールを使うべきであることをたくさん聞いたことがありますが、それらを使うことの客観的な利点が何であるか分かりません。私は名前空間に対するさまざまな議論について読んだことがありますが、私はそれほど説得力がありません。私はいくつかの議論を挙げるでしょうし、皆さんは、それらがなぜ有効であるかの実例を私に説明してください:Typescript/JavaScriptのネームスペースの目的は何ですか?
- 名前空間は少なくとも1つのグローバル変数を作成します。しかし、それには何が問題なのですか?私は角度と呼ばれるグローバル変数があるかどうか気にしません。それはどんな害を及ぼすでしょうか?
モジュールでは、消費者はインポートされた変数の名前を決定します。輸入品の名前付けが本当に私に何を与えるのでしょうか?角度という名前の2つの変数が存在する可能性はどれくらいありますか?そして、それらのまれにとき(私はこれをテストしていませんが、それは理論的には動作するはずです)重複する変数名は我々だけでこれを行うことはできませんが存在します:モジュールローダーと
var someOtherName = angular; var angular = function() { };
モジュールを簡単に束ねる作ります彼らは正しい順序でスクリプトを置くからです。しかし、彼らはあなたが明示的に彼らに注文を伝えるとき、あなたの輸入品を各ファイルの上に加えて、それをなぜしませんか?同様に、Typescriptは、tsconfig.jsonの "outFile"オプションを使用してトリプルスラッシュ参照をファイルの上に置くと、正しい順序でJavaScriptをビルドします。輸入とはどのように違いますか?
モジュールローダーがパフォーマンスを向上させます。これは本当に私を混乱させています。 Typescriptまたは.NETフレームワークのバンドルツールを使用して1つの巨大なJavaScriptファイルを生成したとします。どちらの場合でも1つのファイルが存在するため、パフォーマンスは同じではありませんか? SystemJSは必要に応じてこれらのスクリプトを動的にロードします。これは理にかなっていますが、私が25kbのJavaScriptファイルを持ってしまうと、オンデマンドで各kbを読み込むと本当にどれだけのパフォーマンスが向上するのでしょうか?結局のところ、それはわずか25kbです。
モジュールとモジュールローダーが1つのファイルにバンドルしてhtmlで参照するよりも優れているとしても、ライブラリをビルドするためにモジュールローダーを使用すると、ライブラリを使用するすべての人がローダー依存関係をインストールする必要がありますあまりにも?
ありがとうございます。
ようこそスタックオーバーフロー! [ツアー]を見て回り、[ヘルプ]、特に[*どのように良い質問をしますか?*](/助け/やり方)、[* (*/help/dont-ask)、* [ここで私はどんな話題を聞くことができますか?*](/ help/on-topic)閉じる理由:* "多くの良い質問は、この質問への回答は、事実、参考文献、または特定の専門知識ではなく、概ね意見に基づいている傾向があります」*および/または広すぎる(** **質問/質問をお願いする)。 –