F# 类型缩写

示例

类型缩写允许您在现有类型上创建别名,以赋予它们更有意义的含义。

// 名称是字符串的别名
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";}