在Elm中初始化空文件值

时间:2017-11-28 21:35:52

标签: elm

我正在使用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
    }

1 个答案:

答案 0 :(得分:2)

由于Json.Decode.ValueJson.Encode.Value的别名,如果您确实要将Value类型初始化为JSON {},则可以执行以下操作:

filecontent = Json.Encode.object []

但是,我认为在您的情况下,重构到Maybe FileContentArrayBuffer字段类型更有意义,因为,对于Value类型,无论如何都会解码为{}Nothing值肯定看起来更合适和惯用。