web-dev-qa-db-fra.com

Typographie: convention de soulignement pour les membres

J'ai une classe Email

class Email {
  private _from: string;
  private _to: Array<string>;
  private _subject: string;
}

Cela créera un objet e-mail quelque chose comme:

{
  _from:'',
  _to:'',
  _subject:''
}

Cela me semble un peu bizarre car je ne peux pas utiliser directement cet objet pour envoyer à une fonction. Au lieu de cela, je devrai transformer l'objet afin qu'il ne comporte pas de soulignement. Alors, comment utiliser la convention de soulignement ou dois-je transformer l'objet.

EDIT: Si je laisse tomber le "_"

Comment nommer les getters et setters si nous nommons les variables privées sans trait de soulignement? Un plugin VSCode appelé boîte à outils TypeScript les crée quelque chose comme ça

public get $subject(): string { 
  return this.subject;
}

$ Est-il une bonne convention?

12
Jeson Dias

Nommez simplement vos variables privées comme vous le souhaitez, mais n'utilisez pas _. Vous pouvez créer votre propre norme et vous y tenir.

Les setters et les getters sont comme toutes les autres fonctions, vous pouvez donc suivre la convention de nommage des méthodes pour nommer.

N'utilisez pas "_" comme préfixe pour les propriétés privées.
tilisez des mots entiers dans les noms lorsque cela est possible.

7
John Kennedy

Le préfixe de soulignement "_" pour les champs privés est de style obsolète. Il est préférable de nommer votre variable de manière lisible et conviviale.

Voir la convention de codage Microsoft TypeScript ici

  1. N'utilisez pas "_" comme préfixe pour les propriétés privées.
7
Daniel Tran

Ceux qui disent, ne doivent pas utiliser le "_", pour eux, voici du code de T site ypeScript :

class Employee {
    private _fullName: string;

    get fullName(): string {
        return this._fullName;
    } 
    this._fullName = ......
}

Même question sur Stackoverflow , vous devriez y jeter un œil, spécialement la réponse.

Pour le moment, si nous acceptons, nous ne devrions pas utiliser _, alors quelles sont les autres meilleures façons?

Prenons votre exemple de courrier électronique, si nous n'utilisons pas _ alors, nous arriverons à quelque chose comme ceci:

memebr: to,      get/set: emailTo
member: from     get/set: emailFrom 

peut-être que vous pouvez penser à un meilleur nom, mais à chaque fois que vous devez réfléchir, ce qui n'est pas très courant dans le monde des développeurs!

L'utilisation de _ et du même nom pour la propriété est facile à vérifier le code, sinon nous continuerons de mapper quelle propriété à quel membre.

MAIS: Si vous avez été forcé par votre chef d'entreprise, alors vous pouvez utiliser $ pour un membre et une propriété sans, pas une règle mais un moyen simple:

class Employee {
    private fullName$: string;

    get fullName(): string {
        return this.fullName$;
    } 
    this.fullName$ = ......
}

Le choix t'appartient!!!

1
Ali Adravi