Merge Elm 0.19中具有可扩展记录的合并模型

Merge Elm 0.19中具有可扩展记录的合并模型,merge,record,elm,Merge,Record,Elm,我定义了一个可扩展的记录 type alias Saved a = { a | x : Int , y : String } 以及基于此的模型: type alias Model = Saved { z : Float } 然后,我将JSON加载并解码到一个保存的{}: let received = Decode.decodeValue savedDecoder json |> Result.toMaybe in (Maybe.map (\r

我定义了一个可扩展的记录

type alias Saved a =
  { a
    | x : Int
    , y : String
  }
以及基于此的
模型

type alias Model =
  Saved { z : Float }
然后,我将JSON加载并解码到一个
保存的{}

let
  received =
    Decode.decodeValue savedDecoder json |> Result.toMaybe
in
(Maybe.map
  (\r ->
    { model
    | x = r.x
    , y = r.y
    }
  )
  received
  |> Maybe.withDefault model

是否有任何方法可以将现有的
模型
与收到的
可扩展记录合并,而不需要单独复制每个字段,类似于ES6
对象。分配
功能?

就是这样做的。(可选)您可以选择模式匹配参数:

Maybe.map
  (\{x, y} ->
    { model
    | x = x
    , y = y
    }
  )