ジンジャー研究室

長めのつぶやき。難しいことは書きません。

TypeScript >= 4.1 の Template Literal Types を活用した引数パーサーを作ってみた

ヘルプっぽいものを書くと文字列をパースして型をつけてくれる。 デフォルト値を指定すると T | nullT になったりする。

f:id:jinjor:20201230222747p:plain

公開は今のところ GitHub Packages だけです(メンテしなくていい方法を考え中)

github.com

型レベルのパーサーはこちらの記事を大いに参考にしたというかパクりました。

(ネタ) TypeScript 型パズルで作るmini interpreter | by Yosuke Kurami | Medium

こんなに本格的じゃないけど。

難しいなと思ったのは、せっかく型レベルでパースしてもその結果を値レベルの実装に利用できない点。 なので、型は型、値は値でそれぞれパースして最終的に辻褄が合うように実装しました。

それでは皆さま良いお年を。