Named Parameters

Les paramètres ordonnées nuisent à la lisibilité du code et au refactoring.

class Customer {
    constructor(firstName, lastName, email, phoneNumber) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
        this.phoneNumber = phoneNumber;
    }
}

new Customer('Foo', null, null, '123');

Malheureusement, les named parameters n'existent pas mais une solution de contournement native est possible grâce au destructuring.

Named Parameters avec un seul paramètre.

class Customer {
    constructor(args) {
        this.firstName = args.firstName;
        this.lastName = args.lastName;
        this.email = args.email;
        this.phoneNumber = args.phoneNumber;
    }
}

new Customer({
    firstName: 'Foo',
    phoneNumber: '123'
});

... mais cette approche n'est pas très IDE-friendly. L'utilisateur de la classe ne verra pas clairement les paramètres attendus.

Destructuring

Hop ! On gagne l'initialisation des valeurs par défaut.

Ou encore mieux :

Recyclage

Pour des objets peu complexes, ce constructeur nous évite d'implémenter des "factories".

Last updated

Was this helpful?