runtypesでenumの型を表現する
外の世界のデータをTypeScriptの世界に持ってくる際に、型チェックを行うruntypesというライブラリがあります。
この記事はruntypesでenumを表現する方法について纏めたものです。
Literalで表現する
1つ目の方法はLiteral
を用いて、TypeScriptのenumを使用せずに、Union型として表現する方法です。
当然ながら、この型をswitch文などで判定する際にLiteral
を毎回記述する必要があります。
withConstraintで表現する
2つ目の方法はUnknown.withConstraint
を使用する方法です。
Unknown.withConstraint
は型が正しいかを関数で表現するものです。
Literal
を用いた場合に近い出力が得られるように、name
を指定していますが必須ではありません。
こちらの方法だとTypeScriptのenumをそのまま利用することができますが、enum名とtype名が同じ場合は衝突するので異なる名称をつける必要があります。
参考文献
記事が気に入ったらチップを送ることができます!
You can give me a cup of coffee :)
Kyash ID: soranoba
Amazon: Wish List
GitHub Sponsor: github.com/sponsors/soranoba
PayPal.Me: paypal.me/soranoba
(Updated: )