index.d.tsの使い道
index.d.ts とは
でぐぐったものの、核心に迫るような記事を見つけることができなかったので、まとめる。
index.d.ts
は、 node_modules/@types
以下のディレクトリに入れられているモジュール群の中で使われていることをよく目にする。
中身を見てみると、型定義がされていたりするので、おそらく、 index.d.ts
というファイルは型定義用のファイルとして使えば、まぁ割と一般的なソースコードに近づくものと思われる。
現在の私のプロジェクトでは、型定義をなるべくしない方針で開発を進めている。 resolveJsonModule
を活用して、型定義はしない、というものだ。
しかしながら、 express.Request
を拡張した型を作りたい、などの、 resolveJsonModule
用にモックデータを作ったらとんでもないことになる&結局 Request
を継承している旨を伝える術がない、等の理由で、 resolveJsonModule
以外でなんとかしないといけない場合もある。
ただ、こんなケースは、プロジェクトの中では本当に列挙できるほど少ないものであることに加えて、コアな型拡張をするケースが当てはまる。こんなときに index.d.ts
を定義して、その中に、型を突っこむと、そこそこきれいにプロジェクトがまとまると思う。
index.d.ts
はどこにおいてもいいと思うが、私はプロジェクトルートに置いた。理由は、 index.d.ts
の中に書かれている拡張型は、フォルダで横断的に定義されるため。
こんなかんじで、 index.d.ts
を使ってみた( .d
ってなんだろう)。