m-matchの開発プロジェクト
モチベーション
部分的にほしいが、メソッドチェーンスタイルだと欲しいところだけを取り出せないじゃん
pattern matchが欲しいのではなく、型安全なif thenの式だけがほしい
code:ts
if(isHoge(s)) {
return valueForHoge
else {
// ここでsはisHoge以外になってる
}
TSではtype guradがあるので、if文を書くと良い感じに型が分岐できるが、これを式にしたい。 matchしてたら何かを返して、matchしてなかったら入力を絞りたい
メソッドチェーンで登場する個別のパーツを分解して定義すると良いんじゃないの?
v0.0
検討メモ
現状これらしかない
match
when
reduceMatchers
exhaustive
reduceMatchers, 名前を簡単にしてreduceにしてもいいだろうか?
あるいは、matchの引数で配列を受け取って、それをreduceMatcher相当とするのもいいか
P.selectはちょっとむずいか
ts-patternのapiを見て、良いもの、真似るべきものとかを探してみよう
パターンマッチにおけるパターンの記述って、valibotとかzodのスキーマとやってること同じでは?
じゃあvalibotのschema使って実装したほうがシンプルだしきれいじゃん
schema.parseを渡すか、schema渡せるようにすればいいだけ
あとP.selectとかだけうまい方法を考えればts-patternを置換えられるんじゃないか
schemaに対して名前を付与できるようにして、parseの外側に名前の部分を取り出す仕組みを入れれば良い
todo
ちゃんとnpmいい感じにデプロイする
ちゃんとTSとしてジャンプするとソースが読めるやつとか
ビルド設定とか
これが欲しいユースケースを具体的なもの考えた方が良い
過去ログ