2016-10-24 14 views
0

いくつかのインターフェイスを持つtypescriptでnpmモジュールを作成しています。 index.tsファイルでは、すべてのクラスとインターフェイスをエクスポートします。私はインターフェイスを "interface dto {a:string;}デフォルトのdtoにエクスポート"として宣言しました。プライベートnpmモジュールからTypescriptインターフェイスをエクスポートする

は今index.tsに、私はインターフェイスをインポートし、 行う{ DTOを: DTO}

それは、そのなくなっtranspilesとき。

npmモジュールの外部にインターフェイスを公開するにはどうすればよいですか?

+1

タイプ宣言を生成し、生成された 'd.ts'ファイルを配布するためにhttps://www.typescriptlang.org/docs/handbook/compiler-options.html) – artem

答えて

0

インタフェースは活字体の主要な特徴である一方で、彼らはネイティブJavaScriptに変換されません...

活字体がビルド - を提供するためのインターフェースを使用しています時間タイプの安全性。しかし、これらのインターフェースは、 "ダックテスト"(それがダックでなければダックでなければなりません)に似ており、クラスが明示的にインターフェースを実装する他の強く型付けされた言語のインターフェースと同等ではありません。むしろTypeScriptでは、の代わりにのクラスを使用できます。

トランスペアリングは、コードをネイティブJSエンジン(ブラウザなど)で実行できるように、TypeScriptからJavaScriptにクロスコンパイルするプロセスです。

TypeScriptインターフェイスのメリットは、コードの作成/コンパイル時のみです。コンパイルすると、JavaScriptに相当するものはなく、これらのインタフェースは消えます。

しかし、結果のJavaScriptコードとほぼ同じ意味を持つ宣言(.d.tsから)をインポートするためのTypeScriptの規約があります。そのため、JSのTSコンシューマは、タイピング。

Basaratはすでに彼の優秀な本へのリンクを提供しますが、私は彼が質問を誤解と信じて、それはより良いこのリンク答えている:あなたは( `TSC -d` [オプション]を使用することができます

https://basarat.gitbooks.io/typescript/docs/types/ambient/d.ts.html

関連する問題