Elmアーキテクチャは、その意味を伝えるために、Model
とMsg
のようなタイプの一貫した命名を推奨します。小文字のmsg
を使用すると、意図が何であるかが少し明確になります。
これは非常によくa
と命名されている可能性がありますが、それは間違いなく多くの情報を伝えることは間違いありません。
編集
は、もう少し手の込んだelm-lang/html
パッケージのドキュメントを検討します。
はのはHtml.program
の定義を見てみましょう:
program :
{ init : (model, Cmd msg)
, update : msg -> model -> (model, Cmd msg)
, subscriptions : model -> Sub msg
, view : model -> Html msg
} -> Program Never model msg
The Elm ArchitectureはあなたのModel
とMsg
タイプは状態を運ぶとアクションが何であるかを示すために、フレームワークで使用される方法の非常に明確な意図を概説します実行されます。ドキュメントを通じて常に小文字のmsg
とmodel
を使用することで、どこに行くのかを理解するのがはるかに簡単になります。
は、型パラメータは、多くの場合、a
で始まる省略されているよりHaskellesqueアプローチの代替を考えてみましょう:
program :
{ init : (a, Cmd b)
, update : b -> a -> (a, Cmd b)
, subscriptions : a -> Sub b
, view : a -> Html b
} -> Program Never a b
その定義は、すべてのビットとして有効ですが、私はそれがほとんどのように説明としてではないことを主張するだろうMsg
とModel
のタイプについての強いヒントを提供するprogram
のドキュメント。
ありがとうございました!余分な情報がどのように伝えられているのかをもっと明白に表現できますか? –
私は上記の答えを、ドキュメントの例を使ってもう少し詳細に更新しました。 –
ああ、そうだ。だから 'msg'は「これはおそらくあなたのプログラムで定義されている' Msg'型の値でなければなりません」という意味です。 'Msg'がユーザによって定義されず、むしろこのライブラリからインポートされた場合、そのタイプは' Html msg'ではなく 'Html Msg'になります。それは公正な要約だと思いますか? –