1
からのデータコンストラクタを公開し、インポート:は、私は1つのモジュールタイプを定義したい私のエルム・プログラムでは、別のモジュール
MyModule.elm:
module MyModule exposing (MyType)
type MyType = Constr1 String | Constr2 Int
別では、この型の値を構築しますモジュール:
Main.elm:
import MyModule exposing (MyType)
import Html exposing (text)
main =
let x = Constr1 "foo" in
text "hello"
私はこれをビルドする:
elm-package install elm-lang/html && elm-make Main.elm
は私が手:
NAMING ERROR ------------------------------------------------------- Main.elm
Cannot find variable `Constr1`
6| let x = Constr1 "foo" in
^^^^^^^
Detected errors in 1 module.
私は両方exposing
句で(..)
を使用している場合、これはうまくコンパイルが、私はコンストラクタを公開することを表現する方法を知っていただきたいと思います。
サイドノート:私はドキュメントでこれを見つけたはずです。
module MyModule exposing (MyType(Constr1, Constr2))
タイプのすべてのコンストラクタは(..)
表記用いて露光することができます:
module MyModule exposing (MyType(..))
をそして、あなたがしたくない場合は、次のように公開するコンストラクタを指定することができ
です。ありがとうございます!これがドキュメント内のどこにあるかに関するコメント? –
私はそれをコミュニティのドキュメントに追加しますので、ここに表示されます(http://elm-community.github.io/elm-faq/#why-when-i-import-a-module-that-defines -a-type-does-the-compiler-type-name-but-not-its-constructors) –
素晴らしい、ありがとう。なぜ私はこれをしてはならないのか、私は行こうとします。 –