これまでのところ、tsdまたは(より良いバージョン)typingsに慣れています。
しかし、TypeScript 2が新しい@types
機能を提供するようになったので、現在のプロジェクトを@typesで動作するように変換するにはどうすればよいですか?
すべての依存関係を持つtsd.json(typings.jsonは場合によっては)がありますが、TypeScript 2に移行する手順は何ですか?
newのベストプラクティスとは何ですか? @typesは特定のバージョンをサポートしていますか?
とても簡単です。必要な定義をnpm経由でインストールするだけです。
たとえば、lodashが必要な場合は、次のことができます。
npm install --save @types/lodash
インストールしたら、プロジェクトですぐに使用できます。 TypeScriptは、デフォルトでnode_modules/@ typesフォルダーからインストールされた@typesパッケージのタイピングを解決します。 tsd.jsonまたはtypings.jsonファイルはもう必要ありません。
追加のポイント:
typeRoots
およびtypes
here についてお読みください。特に次の2つの点に注意してください。typeRoots
がtsconfig.jsonで指定されている場合、指定されたフォルダーのみがタイプルートに使用されます。指定しない限り、./ npm_modules/@ types /は除外されます。types
が指定されている場合、指定されたパッケージのみが含まれます。詳しくは、ブログの投稿で こちら をご覧ください。
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"
が役立ちました。開発者の時間を節約できることを願っています。
現在のプロジェクトを@typesで動作するように変換する方法
もう少し長く続けることをお勧めします。
例えば問題はまだ修正されています...たった4時間前: https://github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422