2016-04-08 23 views
13

「からのインポート」を使用した場合、まだ必要なトリプルスラッシュが参照されています。今バージョン1.6た後、私たちは、私はしばらくの間読んでいる推奨ES6の道Typescript。これは必須の参照を追加するための有名な</p> <pre><code>/// <reference </code></pre> <p>ラベルを追加するために必要とされた活字体の古いバージョンでは

import Greeter from "./greeter"; 

を使用して依存関係をインポートすることができますが、それはトリプルスラッシュの参照を完全に回避する必要があるかどうか、そしてなぜ私にはまだ明確ではありませんかない。

BTW。 tsconfig.jsonにfilesの代わりにfilesGlobを使用している場合、コンパイラはTSファイルをコンパイルする順番を知っていますか?

+0

es6/amd/commonjsモジュールを作成する場合は、importを使用します。単一ファイルのプロジェクトを作成したい場合は、名前空間と参照を使用できます。 – lujcon

答えて

3

まず第一に、私は信じていないfilesGlobは、まだ正式にはサポートされています。https://github.com/Microsoft/TypeScript/issues/1927

今までトリプルスラッシュ参考として、それはすべてがtsconfig.jsonにfilesで参照されている限り必要とされていません。

tsdまたはtypingsのようなツールを使用して外部ライブラリのタイプ定義を管理すると、tsconfig.jsonにインクルードする単一のファイルが作成されます。その単一のファイルは、残りのファイルを含めるためにトリプルスラッシュ参照を使用します。

かに依存するものをコンパイラに伝えるために、私たちは///<referenceを必要とする内部モジュール/名前空間を使用しているときは、依存関係グラフを構築し、ソートするためにTypeScript Handbook

+0

ポイントはfilesGlobが自動的にファイル句を生成するということです。しかし、これは適切な順序を持っていないようです。あなたが言及した問題を見ていきます。とにかくあなたが入力について言うことは実際には真実ではありません。実際の.dtsファイルには3重スラッシュ参照はなく、その参照がリストされているその単一のファイルを参照する必要はありません – iberbeu

+0

ファイルセクションでは、エントリポイントを含めるだけです。 TypeScriptコンパイラは、自動的にエントリポイントから始まり、インポートに続いて正しい順序を生成します。グローバルを定義し、他の場所にインポートされないものは、別のケースです。 – mjohnsonengr

+0

これは、インポートと外部モジュールを使用した場合にのみ正しいことに注意してください。名前空間/内部モジュールを使用している場合、コンパイラはそれらを正しく並べ替えることはできません。*ファイル*で自分で注文するか、トリプルスラッシュ参照を使用する必要があります。 – Alex

2

にトリプルスラッシュ参照の詳細情報を見つけることができますファイルを正しい順序で並べ替えます。

あなたが記述するES6の方法は、(外部)モジュールです(https://github.com/Microsoft/TypeScript/issues/2242を参照)。そのため、非同期にロードされるため、連結の順序は関係ありません。

したがって、ES6モジュールを使用すると、///<referencesは必要ありません。

fileGlobsについては、これはTypeScriptではまだ実装されていませんが、そうであっても、プロジェクト内のファイルの依存関係解決については何も変更されないと思います。 atom-typescriptでもfileGlobsを実装していますが、「任意の形式のjsの順序に依存します」という非常に​​のコードであり、tsconfig.json内のファイルを手動で注文する以外の方法ではサポートされません。

+0

バッファのような内部ノードを使用している場合でも、トリプルスラッシュの参照が必要ですか? – DarkNeuron

+0

@DarkNeuron npmパッケージをプルしてTypeScriptコードで使用したいと思っていますか?それは外部モジュールなので、 'import'を使ってロードするべきです。次に、トリプルスラッシュの参照は必要ありません。 – Alex

関連する問題