私は、依存関係をインポートするための定型文を減らすためのいくつかの方法を探していて、Typescriptの名前空間とそれらが複数のファイルにどのようにマージされているのかを見つけました。たとえば:任意の種類のインポートと名前空間宣言をマージすることは可能ですか?
foo.ts
namespace app {
const foo = bar() // foo is 42 now
}
bar.ts
namespace app {
export function bar() {
return 42
}
}
限り、両方のファイルが活字体プロジェクトに追加されているとして、それが正常にコンパイルして、依存しますバンドルされているか実行されているかについて、うまく動作するかもしれません(ここではソースファイルの順序が重要です)。私はすべての単一の依存関係のためのインポートステートメントを入力する必要がないことが気に入っています。 1つの名前空間にすべてのものを置くことは、普通のJavascriptで狂っているかもしれませんが、すべてのシンボルとそれらが使われている場所を追跡できるので、Typescriptの魅力のように機能すると思います。
ここで、ピクルは、いずれかのソースにインポートまたはエクスポートステートメントがない場合にのみ機能します。 2番目は外部ライブラリをインポートしようとしましたが、そのソースファイルは独自のモジュールになり、もう一方の名前空間は自動的にマージされなくなりました。
require
を使用しても、インポートの種類を取得するうえで便利な方法はありません。
この名前空間を外部インポートとマージする方法はありますか?
私にはモジュールが実装の詳細をカプセル化し、モジュールにアクセスするための明確なインタフェースを定義についてです、これらは基本的にエクスポートプロパティです。ファイルの上部にある依存関係の一覧は素晴らしいですが、モジュールユーザーの観点から見ると、これは単なる実装の詳細なものです。他の言語では、独立したモジュールを形成する一連のファイルの概念を持つのが一般的です。Typescriptでも同様のことができると思います。 – Gunchars
モジュールを構成する一連のファイルを持つことは、これらのファイル間で共有される暗黙的に定義されたスコープがあることを意味します。言い換えれば、グローバリゼーションスコープのあまりよく定義されていない変種です。 javascriptではモジュールが導入されました。なぜならjavascriptにはそれほど悪いことがあったからです。 npmの「エコシステム」を備えたnode.jsのデモンストレーションとして、かなりうまく機能します。 – artem