【TypeScript】型定義ファイル(.d.ts)ファイルについて
型定義ファイルについて
npm installでライブラリを落としたあと、node_modulesで落としたライブラリを確認するとjsファイルで書かれていることがあります。では、それらをtsファイルでimportするとどうなるでしょうか。基本的には利用することができると思います。
なぜjsファイルをtsファイルで利用できるのかというと、ライブラリをimportするとき裏側では同時にライブラリが持つ「型定義ファイル」をimportするからです。
ライブラリの中を見ると「.d.ts」が確認できると思います。これが「型定義ファイル」です。
ただし、npm installしただけでは、型定義ファイルが入っていないこともあります。その場合は別途installが必要になります。
型定義ファイルのインストール
ライブラリ自体がTSで書かれていない場合は「Definitely Typed(DT)」というリポジトリから型定義ファイルをインストールすることができます。
インストールコマンドは次に通りです。
npm install @types/パッケージ名
また、ライブラリがTSで書かれているのか、jsで書かれているからDTで型定義ファイルをインストールする必要があるのかはNPMの公式サイトより確認できます。
expressはDTですね。
注意点
DTの型定義はライブラリ作成者が作ったものではないことが上記からわかりました。
ここからわかることは、ライブラリのアップデートがされた場合、DTの型修正を待つ必要があるかもしれないということです。
また、型定義も完璧かわからないという部分も留意して利用することが求められそうです。
型定義ファイルの確認
DTでインストールした型定義ファイルはnode_modules/@typesにあります。
もし、jsで書かれたライブラリをimportした場合、tsはこの@typesディレクトリを確認して型チェックを行います。
Discussion