类型缩写允许您在现有类型上创建别名,以赋予它们更有意义的含义。
// 名称是字符串的别名 type Name = string // PhoneNumber是字符串的别名 type PhoneNumber = string
然后,您可以像使用其他任何类型一样使用别名:
// 使用别名创建记录类型 type Contact = { Name : Name Phone : PhoneNumber } // 创建一个记录实例 // 我们可以分配一个字符串,因为Name和PhoneNumber只是字符串类型的别名 let c = { Name = "Foo" Phone = "00 000 000" } printfn "%A" c // 输出结果 // {Name = "Foo"; // Phone = "00 000 000";}
请注意,别名不会检查类型一致性。这意味着可以将针对同一类型的两个别名彼此分配:
let c = { Name = "Foo" Phone = "00 000 000" } let d = { Name = c.Phone Phone =c.Name} printfn "%A" d // 输出结果 // {Name = "00 000 000"; // Phone = "Foo";}