ts-pattern
実装の元ネタ、TSでレコードやワイルドカードのパターンマッチを実現する方法
apiメモる
with
pattern,handler
code:ts
function when(
predicate: (value: TInput) => unknown,
handler: (value: TInput) => TOutput
): Match<TInput, TOutput>;
.returnType<string>()
matchのoutputの型を指定する
Pattern.string
number,boolean
リテラルは直書き
object
Extractする感じか?
P._
P.array
P.when
オブジェクトの内側とかに入れて、runtime上のvalidationを入れられる
P.select
hanlder上でselectで指定したところだけを取り出せる
しかも名前をつけられる
P.numberとかstringにも、色々utilが生えてる
これ、valibotと役割被ってないか?
valibotのschema突っ込めば良いようにしたらどうなんだ
型
P.infer でパターンから型へ
パターンマッチ実装するのしんど