F# Abréviations de type


Exemple

Les abréviations de type vous permettent de créer des alias sur des types existants pour leur donner un sens plus significatif.

// Name is an alias for a string
type Name = string

// PhoneNumber is an alias for a string
type PhoneNumber = string

Ensuite, vous pouvez utiliser l'alias comme n'importe quel autre type:

// Create a record type with the alias
type Contact = {
    Name : Name
    Phone : PhoneNumber }

// Create a record instance
// We can assign a string since Name and PhoneNumber are just aliases on string type
let c = {
    Name = "Foo"
    Phone = "00 000 000" }

printfn "%A" c

// Output
// {Name = "Foo";
// Phone = "00 000 000";}

Attention, les alias ne vérifient pas la cohérence des types. Cela signifie que deux alias ciblant le même type peuvent être affectés l'un à l'autre:

let c = {
    Name = "Foo"
    Phone = "00 000 000" }
let d = {
    Name = c.Phone
    Phone = c.Name }

printfn "%A" d

// Output
// {Name = "00 000 000";
// Phone = "Foo";}