在询问this question并尝试this suggested solution后,我有以下通用实体类型:
type Entity<'a> = {
Id : Guid
Data : 'a
}
现在,在我在API中公开它之前,我想将其展平,以便Id
和Data
中的属性可以相互序列化。我试过这个,但它没有编译:
let flatten<'a> (v : Entity<'a>) = { v.Data with Id = v.Id }
我希望实现的目的是返回一种记录类型,如果'a
是例如{ foo : string; bar : int }
,然后flatten { Id = someGuid; Data = { foo : "baz"; bar : 42 } }
将返回{ Id = someGuid; foo = "baz"; bar = 42 }
(或等效的)。
有没有办法实现这一目标,还是我试图让类型系统过于动态?