ts-nodeで@typesに配置した独自の型定義ファイルを読み込んでくれない時は..

1 min read読了の目安(約700字

詰まったのでメモ。

起こったこと

ちょっとしたスクリプトを TypeScript で書いていて、それを実効するためにts-nodeを使ったのですが、src/@typesにおいた独自の型定義ファイルをどうしても読み込んでくれず、 Could not find a declaration file for module ...のエラーが発生しました。

試してみたこととしては以下のとおりです。

  • tsconfig.jsonbaseUrlpath で型定義ファイルのパス指定
  • tsconfig.jsontypeRoots への型定義ファイルのパス追加(非推奨らしい

どれを試しても駄目でした。

解決策

答えはやはりREADMEに(最初から読もう😇)。

https://github.com/TypeStrong/ts-node#help-my-types-are-missing

ts-node のデフォルトでは、指定ファイルと依存関係にないファイルは読み込んでくれないので、起動時に--filesオプションを付与する必要がありました。

これでsrc/@typesに指定した独自の型定義ファイルも読み込んでくれるようになります。解決!

package.json
{
  //...
  "scripts": {
    "start": "ts-node --files src/index.ts"
  }
  //...
}