我有两种记录类型:
type Employee = {
Id: string
Name: string
Phone: string
}
type AuditLog = {
PerformedBy: string
PerformedOn: string
}
以下是记录类型的实例:
let emp = {
Id = "123"
Name = "Abc"
Phone = "999"
}
let log = {
PerformedBy = "234"
PerformedOn = "1/1/1"
}
有什么方法可以组合这两个实例的字段来创建新的记录/匿名记录类型,如下所示?
let combined = {
Id = "123"
Name = "Abc"
Phone = "999"
PerformedBy = "234"
PerformedOn = "1/1/1"
}
在 F# 中,记录类型不能以其他方式继承或组合。
要获得具有组合字段的类型,您唯一能做的就是
-
to 显式创建新记录与现有的 2 种类型无关
-
创建这样的类型匿名地,@JL0PD 指向匿名类型的文档。在某些情况下,匿名类型可能非常有用,但在大多数情况下,显式类型是更好的选择 - 使代码更具可读性。
-
创建一个包含 2 个字段和 2 种类型的记录,这并不是您真正想要的。
某些语言(例如 Typescript)具有交叉口类型您可以在其中将类型定义为具有一组其他类型的字段(因为创建的类型的字段是union组合类型中,“路口“对我来说听起来很奇怪)。我猜您正在寻找它,但 F# 和大多数语言中都没有。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)