我正在使用Elm(0.18)并导入了simonh1000的FileReader库。要存储文件值,我们使用以下类型:
import Json.Decode as Json exposing (Decoder, Value)
...
{-| An ArrayBuffer is a Elm Json Value.
-}
type alias FileContentArrayBuffer =
Value
我想用空占位符初始化我的模型。我这样做如下:
type alias Model =
{
username : String
, filecontent: FileContentArrayBuffer
}
initialModel : Model
initialModel =
{
username = "mark"
, filecontent = Nothing
}
但是编译器给了我这个错误:
The type annotation for `initialModel` says it is a:
Model
But the definition (shown above) is a:
{ username : String
, filecontent : Maybe a
}
答案 0 :(得分:2)
由于Json.Decode.Value
是Json.Encode.Value
的别名,如果您确实要将Value
类型初始化为JSON {}
,则可以执行以下操作:
filecontent = Json.Encode.object []
但是,我认为在您的情况下,重构到Maybe FileContentArrayBuffer
字段类型更有意义,因为,对于Value
类型,无论如何都会解码为{}
? Nothing
值肯定看起来更合适和惯用。