@types

Last updated 2 months ago

Definitely Typed は、間違いなくTypeScriptの最大の強みの1つです。コミュニティは効率的にトップJavaScriptプロジェクトのほぼ90%の型ドキュメントを作成しました。

これは、これらのプロジェクトを非常にインタラクティブかつ探索的な方法で使用できることを意味します。タイプミスを防ぐためにドキュメントを別のウィンドウで開く必要はありません。

@typesを使う

インストールは npmの上で動作するのでかなり簡単です。例えばjqueryの型定義を簡単にインストールすることができます:

npm install @types/jquery --save-dev

@typesはグローバルとモジュールの両方の型定義をサポートします。

グローバル @types

デフォルトでは、グローバルに利用する定義は自動的に包含されます。jqueryを例にすれば、あなたのプロジェクトで$をグローバルに使うことができるはずです。

しかし、jqueryのようなライブラリでは、一般的にモジュールの使用をお勧めします:

モジュール @types

実際のところ、インストール後に特別な設定は必要ありません。モジュールのように使用するだけです。例:

import * as $ from "jquery";
// Use $ at will in this module :)

グローバルの制御

予想されるように、グローバル定義を自動許可する設定をすることは、一部のチームでは問題になる可能性があります。したがってtsconfig.jsoncompilerOptions.typesを使って、必要な型だけを指定して、明示的に取り込むことができます:

{
"compilerOptions": {
"types" : [
"jquery"
]
}
}

上の例では、jqueryだけを使用できることを示しています。誰かがnpm install @types/nodeのように別の定義をインストールしても、そのグローバル(例えば process) は、あなたがtsconfig.jsontypesオプションにそれを追加するまで、あなたのコードには入り込みません。