IT-Q

型定義が同梱されていない npm パッケージを使うと、型が付きません。どうしますか。

まず @types/パッケージ名 を探し、無ければ自分で .d.ts を書きます。6.0 以降は types の既定が空なので、process などグローバルな型は types に "node" を書かないと見つかりません。

面接官が見ているのは@types と型定義ファイルの仕組み。

よくある答えと、面談でどう見られるか

  • @types/パッケージ名 があれば入れる。無ければ自分で .d.ts を書く
    その順番です。@types は DefinitelyTyped というコミュニティの型定義集から配られています。
  • TypeScript が JavaScript のコードを読んで自動で型を付けるので、何もしなくてよい
    node_modules の JavaScript から型は作られません。型定義が無ければ暗黙の any か、エラーになります。
  • import に // @ts-ignore を付けて済ませる
    エラーは消えますが、型は付きません。その後の使い方も全部検査されなくなります。
  • パッケージのソースを TypeScript に書き直す
    現実的ではありません。型定義(.d.ts)だけを書けば足ります。

模範解答

まず @types/パッケージ名 があるかを探します。DefinitelyTyped というコミュニティが多くのパッケージの型定義を管理しており、npm の @types から入れられます。

無ければ、使う部分だけの型定義ファイル(.d.ts)を自分で書きます。declare module "パッケージ名" で、そのパッケージの型を宣言できます。

TypeScript 6.0 以降は tsconfig の types の既定値が空になりました。import しないで使うグローバルな型(Node.js の process や、テストの describe など)は、types に "node" などを書かないと見つからなくなります。

対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。