エンジニアリンググループの冨岡です。 先日、以下のTypeScript用DIライブラリを公開しました。大きな特徴として、解決するために不十分な依存がある場合にコンパイルエラーになるようになっています。 github.com www.m3tech.blog このコンパイル時の型チェックの実現には、TypeScriptにおける様々な型レベルのテクニックが用いられています。泥臭い試行錯誤の結果、なかなかhackyなこともやっていて面白い(?)ので、せっかくなので解説しようと思います。 もちろん、「もっとエレガントにできるよ」というアドバイスやプルリクも大歓迎です!皆さんも、自分だったらこうするなぁ、とか思いながら楽しんでいただければと思います! (なお本記事ではこのバージョンのこのファイルをもとに解説していきます。) 前提と問題の設定 typesafe-diでは、各インスタンスのfactoryを
![TypeScriptの型でなんかすごくがんばる - エムスリーテックブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/5224ec1ccf320a0cae0af093dd259e5962bc4534/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fj%2Fjooohn%2F20190421%2F20190421011446.png)