できない.dev

型定義ファイル (.d.ts)

別名: .d.ts / declaration file / 宣言ファイル / @types

拡張子 .d.ts の、型の情報だけを書いた TypeScript のファイル。
実装は持たず、JavaScript のライブラリやグローバル変数がどんな型を持つかをコンパイラに伝える。
npm では @types/ パッケージとしても配布される。

公開:

定義

型定義ファイル(.d.ts)は、型の情報だけを書いた TypeScript のファイル。
関数やクラスの実装は持たず、「このモジュールはこういう名前と型のものを公開している」という形だけをコンパイラに伝える。

詳細

型定義の入手先は 3 通りある。
パッケージ自身が .d.ts を同梱している場合、DefinitelyTyped で作られた @types/パッケージ名 を npm install -D で追加する場合、どちらも無いときに declare module "pkg"; などを書いた .d.ts を自作する場合である。
自作の .d.ts は tsconfig.json の include の範囲に入っていないと読まれない。declaration オプションを有効にすると、tsc は自分のコードからも .d.ts を書き出す。

よくある誤解

  • node_modules/@types は常に全部読まれる: TypeScript 5.9 までは既定でそうだったが、6.0 から types の既定値が [] になった。import せずに使う @types/node のようなグローバルな型は、"types": ["node"] のように列挙しないと見つからない。
  • .d.ts を足せば実行時の動作も直る: 型定義はコンパイル時の検査にだけ使われ、出力される JavaScript には含まれない。

関連

型定義が見つからない場合は TypeScript で「Cannot find module ... or its corresponding type declarations」が出る で、JSX で型が付かない場合は TypeScript で TSX の JSX 要素が implicit any になる(TS7026) で切り分けられる。

この記事は役立ちましたか?