2017-01-02 15 views
0

しばらくの間、純粋なTypeScriptプロジェクトで.d.tsファイルを使用するべきかどうか疑問に思っていますか?TypeScript定義ファイル - Pure TSプロジェクト

もしそうでなければ、メインファイルがすでに大きくなっている場合に備えてのみインターフェイスを保持するファイル名の慣習がありますか?インターフェイスと実際の実装を分割してクリーンアップしますか?

.d.tsには、実際に実行可能なコード を書くことができないので、ブラウザで無駄なファイルを読み込むことはできませんが、これは定義ファイルの誤用であると感じています。 JSコードとの組み合わせでのみ使用すべきであることを示しています。

もしそうなら、どこにインターフェイスを配置するのですか? "types.ts"または "interfaces.ts"?

+0

私の意見では、インターフェイスはそれらを使用するモジュール内の場所でなければなりません。 'ModuleX.ts'が' InteraceX'を使っている唯一のものであれば 'ModuleX.ts'以外の意味になる場所はありません。あなたが 'HttpRequest'インターフェースを持っているなら、' net.ts'にあり、一般的な 'interfaces.ts'ではなく、それは意味をなさないでしょう。 –

+0

これで、インターフェイスと実装を分割することはありません。また、本当に必要な場合にのみインターフェイスをエクスポートできますか?ちょうどファイルが馬鹿げて大きくなっています:) – Clem

+1

いいえ、ソースフォルダ内の定義ファイルは使用しませんが、コンパイル時に定義ファイルを生成して他のモジュール/プロジェクトの定義ファイルを使用します。ファイルが大きくなると、それらを分割しますが、インタフェース/実装ではなく、機能/ロジックによって分割します。大きなモジュールは小さなモジュールに分けることができます。 –

答えて

1

ここでは、インターフェイス(TypeScriptの概念)とd.tsファイルの2つを混在させていると思います。 - 一般的にあなたのプログラム(link)で使用されている、あなたのタイプに構造を提供するために使用さ

  • interface:私は、彼らは二つの異なる目的にサービスを提供している、それを見たよう。あなたのプログラムをインターフェースに分割する方法は広すぎると主観的な話題です。
  • d.tsファイル - 不足しているプロジェクトのタイプ情報を提供するために使用されます。

私はあなたのtypescriptプログラム開発の一環としてd.tsファイルを使用すべきではないと思っています。実際にはjavascriptに変換された結果になります。

たとえば、typescriptでnpmモジュールを開発している場合、JS + d.tsファイルにトランスペアレントに公開する予定です。エンドユーザーが蒸散せずにモジュールをインポートできるようにするために、再びすべてのタイプ情報を利用できます。

+0

私は2つを混同しませんでしたが、間違いなく素晴らしい答えがありました。今、私はd.tsファイルの真の目的を見ています。ありがとう! – Clem

関連する問題