57

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

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

すべての依存関係を含む tsd.json (typings.json の場合もあります) があります。TypeScript 2 への移行を行う手順は何ですか?

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

4

4 に答える 4

73

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

たとえば、lodash が必要な場合は次のようにします。

npm install --save @types/lodash

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

追加のポイント:

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

詳細については、こちらのブログ投稿をご覧ください。

于 2016-07-18T19:26:18.267 に答える
40

Typescript 2.0は、以前のTypingsシステムを取り除きます。
Typescript 2.0 は、デフォルト./node_modules/@typesで、個別のノード モジュールとしてインストールしたタイプを調べて取得するnpm install --save @types/react必要があります。

現在のバージョンの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"は助けになりました。うまくいけば、開発者の時間を節約できます。

于 2016-08-24T20:26:06.990 に答える
4

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

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

Typings.jsonにある依存関係をpackage.jsonに移動できます (もちろん、名前も変更する必要があります)。

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

于 2016-07-18T19:25:17.067 に答える
2

現在のプロジェクトを @types で動作するように変換するにはどうすればよいですか

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

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

于 2016-07-19T01:55:24.050 に答える