1

.tsプロジェクトには約 100個のファイルと 12 個の.d.tsファイルがあります。TypeScript 0.8.3 では、参照を処理する_references.d.tsために、すべての定義ファイルを依存関係の順序でリストし、プロジェクトのファイル内の他の typescript アイテムの前に表示されるようにするという単一のファイルがありました.csproj

<ItemGroup>
  <TypeScriptCompile Include="Scripts\_references.d.ts" />
  ...

このようにして、typescript ソース ファイルに参照を追加しなくても、すべての参照が正しく解決されました。ただし、これは TypeScript 0.9.0.alpha にアップグレードした後は機能しないようです。現時点では_references.d.ts、すべてのソース ファイルで への参照を作成し、それらすべてを調べて各定義ファイルへの直接参照を含める必要があっても機能しません。.tsまた、各ファイルで未使用の参照を知ることができず、それらをクリーンアップする簡単な方法がないため、このアプローチは好きではありません。だから私の質問は、これは設計上の問題ですか、それとも参照についてコンパイラを満足させることができる他の方法はありますか?

ありがとう!

4

3 に答える 3

2

コマンド ラインから TypeScript をコンパイルするための明確なパイプラインを用意したほうがよいでしょう。

私のプロジェクトに reference.ts があるのが好きです。これにより、プロジェクト内のすべてのファイルが参照されます。そして、私のプロジェクトの各ファイルは、このメインファイルを次のように参照します。

/// <reference path="references.ts" />

.d.tsの代わりに.tsに注意してください

Typescript は循環依存関係 (型ではなくファイル参照間) を解決するので、これについて心配する必要はありません。

プロジェクトを次のようにコンパイルします。

tsc --out output.js --declaration

単一の js + output.d.ts ファイルを取得して、他のプロジェクトで再利用できます。

于 2013-05-30T00:00:17.137 に答える
2

何が問題だったのかがわかったと思います。私たちの_references.d.tsファイルには、参照の前にファイルの先頭で宣言された Interface がありました。コンパイラは有益なエラーを表示せず、それらの参照を無視しました。

したがって、すべて/// <reference path="..." />がファイルの最初に来る必要があります。

于 2013-05-30T23:17:09.613 に答える