2016-09-14 12 views
5

ちょうどニレコードでかいま見を取り、次の型定義に出くわした:エルム再帰的な型定義

type Cmd msg = Cmd 

私はこれがどのように動作するかを理解するように見えることはできません。誰でも説明できますか?

答えて

10

これは再帰型の定義ではなく、1つのラベル(Cmd)を持つ共用体型として型Cmdを定義しています。通常、このような定義は、型がelm内で個々の意味を持たない値を表すことを知らせることを意図しています。

この場合、Cmdのすべての操作がプラットフォームコード内に隠されているため、その型はそのように定義されているため、ユーザーがCmd値を調べたり、削除したりする必要はありません。指定された型のメッセージを生成するという約束をカプセル化し、その型をCmd.mapで変更することができるため、Cmdは型変数を公開する必要があります。