カウントアップ/ダウンタイマーをモデリングしています。原点日が設定された後、タイマーはどれくらいの時間が経過したか、またはその起点日まで残っているかどうかを表示します。ネストされたユニオンタイプのパターンマッチング
type OriginDefined
= Up Date
| Down Date
type Origin
= OriginDefined
| OriginUndefined
type Model
= Tick OriginDefined
| Edit Origin
したがって、タイマーは、起点日が定義されている場合にのみ有効です。しかし、原点が編集されている場合は、事前に定義されている場合と定義されていない場合があります。
Edit
モードでは、日付入力にdefaultValue
を返す関数が必要です。
dateInputDefaultValue : Origin -> String
dateInputDefaultValue origin =
case origin of
OriginUndefined ->
""
OriginDefined ->
...
は、ここで私はUp date
またはDown date
としてorigin
さらにdestructureに苦労します。 case
式の2番目のブランチでは、コンパイラはorigin
を、Origin
よりも具体的なものとして扱うことを拒否します。ここで
は、私はそのようなモデルを扱う必要がありますどのようにエリーhttps://ellie-app.com/3zKCcX87wa1/0
ですか?私は別の方法でモデル化すべきですか?