私は最近ECMAScript 6互換のJavaScriptからTypeScriptに変換されたNode.jsプロジェクトを持っています。私は、TypeScriptとES6がどのように相互作用するか、特に名前空間とタイプに関して、完全には熟知していません。TypeScript ES6名前空間
私のプロジェクトには、sql
と呼ばれるサブフォルダがあり、それは聞こえても、プロジェクトのMySQLデータベースとやり取りするためにいくつかの機能をエクスポートします。 Sql.Models
名前空間で自分のDBモデルタイプを整理したいので、それらを参照することができます。 Sql.Models.User
。私のモデルはsql
フォルダ内にある1つまたは複数の.d.ts
個のファイルで宣言したいと思いますが、これらのタイプを他の場所で参照できるように正しく構成する方法がわかりません。私は明らかにできませんrequire
またはimport
.d.ts
ファイル;これは有効なTypeScript操作ではありません。別のES6互換型TypeScriptモジュールの.d.ts
ファイルで宣言されたタイプSql.Models.User
を使用するにはどうすればよいですか?
私はこのように設定すると、ルートレベルの名前空間 'Sql'を持つ別のファイルから' Sql.Models'にアクセスできません。おそらく、私はC#の仕組み、つまり複数のファイルが名前空間に参加できるという点ではあまりにも多くのことを考えています。 私は 'Sql'名前空間を提供するクラスを1つ持ち、私のプロジェクトの他のファイルが必要とする必要があるのは私だけです。 'query'のようないくつかの一般的な関数を定義します。しかし、私はまた、例えば前述のようなモデルを提供する他の名前空間を望んでおり、すべてが 'Sql'名前空間の子である。 – briman0094
「Sql」という1つの名前空間と「Sql.Models」という別の子名前空間を使いたいと思っていますか? –
それは正しいです。私はモデルインタフェースをエクスポートした 'sql.ts'の隣に' models.ts'ファイルを置いて 'sql.ts'でそれらをインポートし、それらを適切な名前空間の中に再エクスポートすることでこれを解決することができたと思いますこれはかなり好きではありませんが、実際には名前空間をエクスポートすることはできません。それは働き、私が望む最終結果をもたらします。 – briman0094