TypeScriptの型の再帰は50が上限です。 先日、 @kgtkr さんがTypeScriptの型で遊ぶ時、再帰制限を無効化するという記事で、 その再帰制限を、ソースコードを書き換えることで突破して、型レベル BrainF**k などで遊んでいるのを見ました。 タイトルで合法的と言っておきながら、別にソースコードを書き換えるのが何らかの法に触れる訳ではないのですが、とは言え @kgtkr さんも記事の中で、 当然ですがプロダクトで使うことは想定していません、やめましょう。 と言っている通り、これをプロダクトに採用するわけにはいきません。 というわけで、ソースコード書き換えをせずに再帰制限を突破してやろう、というのがこの記事の趣旨です。 文字列を分割する(再帰制限に引っかかる例) Template literal types がマージされたので、 typescript@next を使えば