型定義ファイルの管理方法

TypeScript を書いていて、型定義ファイルがライブラリのリポジトリや DefinitelyTyped/DefinitelyTyped にある場合は、npm 経由でインストールしている。


型定義ファイルに漏れがあると、修正して Pull Request を送っている。また存在しない場合は、DefinitelyTyped/DefinitelyTyped に PR している。


ここで、作成してから取り込まれて、npm からインストールできるまでの微妙なタイムラグの間どうやって管理すればいいのか悩んでいる。

現状、DefinitelyTyped/DefinitelyTyped の types2.0 ブランチに PR していて、それが取り込まれていない。
[types-2.0] Add d3-hexbin by heavenshell · Pull Request #12089 · DefinitelyTyped/DefinitelyTyped · GitHub


この取り込まれていないものを、取り込まれるまで使いたい。

とりあえず、現状は `types` というようなディレクトリを作り、その中に、モジュール名でディレクトリを作り、その中に型定義ファイルを入れている。


`types/d3-hexbin/index.d.ts` という風な形で、tsconfig.json の中で、 paths でモジュール名を解決するようにしている。

    "baseUrl": ".",
    "paths": {
      "d3-hexbin": ["types/d3-hexbin/index.d.ts"]
    }

これで、自分のローカルで npm でインストールしたのと同じように、モジュールとして使える。


ただし、これをプライベートのリポジトリに push しているので、その管理方法が手間。管理したくない。

typings はオワコンな雰囲気が出てきているので、使いたくない。
良い管理方法を知らないので、現状はローカルにキャッシュするたびに、何を管理していて、どこに手が入っているかを Issue として管理している。


何か良い方法はないものだろうか。