web-dev-qa-db-ja.com

TypeScript 2で@typesを使用する方法

これまでのところ、tsdまたは(より良いバージョン)typingsに慣れています。

しかし、TypeScript 2が新しい@types機能を提供するようになったので、現在のプロジェクトを@typesで動作するように変換するにはどうすればよいですか?

すべての依存関係を持つtsd.json(typings.jsonは場合によっては)がありますが、TypeScript 2に移行する手順は何ですか?

newのベストプラクティスとは何ですか? @typesは特定のバージョンをサポートしていますか?

47
gilamran

とても簡単です。必要な定義をnpm経由でインストールするだけです。

たとえば、lodashが必要な場合は、次のことができます。

npm install --save @types/lodash

インストールしたら、プロジェクトですぐに使用できます。 TypeScriptは、デフォルトでnode_modules/@ typesフォルダーからインストールされた@typesパッケージのタイピングを解決します。 tsd.jsonまたはtypings.jsonファイルはもう必要ありません。

追加のポイント:

  • Npmの@typesパッケージのメジャーバージョンとマイナーバージョンは、パッケージバージョンに対応している必要があります。
  • ここでタイプを検索できます: http://Microsoft.github.io/TypeSearch/
  • typeRootsおよびtypes here についてお読みください。特に次の2つの点に注意してください。
    • typeRootstsconfig.jsonで指定されている場合、指定されたフォルダーのみがタイプルートに使用されます。指定しない限り、./ npm_modules/@ types /は除外されます。
    • tsconfig.jsontypesが指定されている場合、指定されたパッケージのみが含まれます。

詳しくは、ブログの投稿で こちら をご覧ください。

57
David Sherret

TypeScript 2.以前のTypingsシステムを削除します。
Now TypeScript 2.は、デフォルトで./node_modules/@typesを調べて、個別のノードモジュールとしてインストールしたタイプを取得する必要があります。 npm install --save @types/react(@David Sherretによる言及)

現在のバージョンにはバグがありますTypeScript 2.0 beta。これは新しいタイプをロードしません。 cmd new tscを使用して手動でファイルをコンパイルしますが、VS 2015にはIntelliSenseのサポートがなく、.tsファイルが編集モードのときにエラーは表示されません。

解決するには、tsconfig.jsonを同様の設定で変更します。

{
  "compilerOptions": {
     // ... other config rows 
   "typeRoots": [ "node_modules/@types/" ],
    "types": [ "jquery", "react", "react-dom", /*... your other types */ ],
  }
}

私にとっては"types"宣言がこの問題の解決に役立ち、他の人には"typeRoots"が役立ちました。開発者の時間を節約できることを願っています。

38
Artru

それらはすべてnpmパッケージであるように見えます。サポートされているものはすべて見つけることができます here

tscは、node_modulesフォルダー内のすべてのタイプを取得します。

typings.jsonにある依存関係をpackage.jsonに移動できます(もちろん名前を変更した場合)。

詳細については、こちらをご覧ください こちら

3
toskv

現在のプロジェクトを@typesで動作するように変換する方法

もう少し長く続けることをお勧めします。

例えば問題はまだ修正されています...たった4時間前: https://github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422

2
basarat