2016-08-14 9 views
7

Typescriptを使用する場合は、型定義ファイル(* .d.ts)を解決する方法を検討する必要があります。Typescriptの型定義管理システム(tsdなど)に最適なソリューションは何ですか?

私が知っている限り、下記のように型付き定義システムを管理するシステムがいくつかあります。

  • TSD
  • タイピング
  • @types

私はTSDは最古の一つであり、それが起源であると思います。 しかし、なぜtypingsが生まれる必要がありますか?私は、タイピングのための定義ファイルを作るのが少し複雑だと思います。

実際に@typesとは何ですか?

次に、これを回避する最適な解決策は何ですか?

+0

私は手動で入力をローカルで管理しています。不思議に思う。私は時々、definatelyTypedからそれらをコピーします。それらが十分な品質と最新のものであれば、それはそれほど頻繁ではありません。 – AlexG

答えて

8

TypeScriptを取り巻く入力管理エコシステムの背景にある話は非常に大きいです。

最初に、DefinitelyTypedと呼ばれるモノリスリポジトリがありました。これは、さまざまなライブラリの入力に貢献したいすべての開発者のハブとして使用されました。

このリポジトリのために、tsdと呼ばれる入力マネージャが、そのリポジトリから直接入力を受け取り、プロジェクトにローカルに保存します。

DT repoはスケーリング能力を超え、had to be restructuredです。議論は、d.ts.ファイルがどのように見えるかという点でさらに進んでいました。そのため、ある時点では、プロジェクトにタイピングを組み込む別の方法が必要でした。別の問題は、ライブラリとTypeScriptコンパイラ自体のバージョニングでした。

は、1つの点でBlake Embreyは、新たなタイピングマネージャを作成しDefinitelyTypedためのサポートとd.tsを構築する新しい提案の方法を持っていたtypingsと呼ばれます。新しい構造では、2つのタイプのモジュール(グローバル(DefinitelyTypedモジュールのほとんど))とカプセル化されるはずのモジュールが許可されていました。

後でTypeScript 2.0 BetaがMicrosoftによって発表されました。 TypeScriptの背後にあるチームは、タイピングファイルを扱う際に別の方法が必要であることを認識しました。彼らがしたのは@types npmのスコープで、they announced will be the new way of handling typingsです。この時点で@typesはTypeScript 2.0でのみ動作します。

宣言ファイル(.d.tsファイル)は、既存のJavaScriptライブラリをTypeScriptで使用する際の基本的な部分ですが、それらを入手することは常に改良の余地があることをすでに知っていました。 TypeScript 2.0に近づくにつれて、私たちは物事を単純化するという私たちの計画の驚くべきピークを見せてくれることに非常に興奮しています。 TypeScript 2.0で型宣言を取得するには、npm以外のツールは必要ありません。

あなたの質問の答えにそう:

あなたはバージョン2.0の使用typings下の活字体を使用する場合は、しかし、あなたは2を使用している場合。0使用@types

+4

ありがとう@drinchev、正確に見える - 何かを指摘する価値があるのは、TypingsがTypeScriptを使って依存関係を管理する方法を示した練習です(以前はDefinitelyTyped + TSDでは不可能でした。 )。 TypeScriptはこれを理解し、2.0のコアにプロポーザルを組み込むのに役立っています。 – blakeembrey

関連する問題