TypeScript: bonnes pratiques pour les variables statiques globales

J'ai cette classe où j'ai besoin d'incrémenter un numéro à chaque fois que la classe est instanciée. J'ai trouvé deux façons d'y parvenir, mais je ne suis pas encore sûr de la meilleure pratique

  1. Déclare la variable dans la portée du module

    module M {
      var count : number = 0;
      export class C {
        constructor() {
          count++;
        }
      }
    }
    
  2. Déclare la variable dans la portée de la classe et y accède sur la classe

    module M {
      export class C {
        static count : number = 0;
        constructor() {
          C.count++;  
        }
      }
    }
    

Ma prise est l'exemple deux car elle n'ajoute pas la variable count dans la portée du module.

Voir aussi: C# incrémenter des variables statiques lors de l'instanciation

31
demandé sur Community 2013-05-09 17:21:54

2 réponses

Certainement la méthode 2 puisque c'est la classe qui utilise la variable. Donc, il devrait contenir.

Dans le cas 1, vous utilisez une variable qui deviendra confuse une fois que vous aurez plus d'une classe par exemple:

module M {

  var count : number = 0;

  export class C {
    constructor() {
      count++;
    }
  }

  export class A{
  }
}
26
répondu basarat 2013-05-09 14:00:05

Les deux sont corrects, mais method 2 plus explicite, Ce qui signifie moins déroutant lorsque votre code devient plus complexe, sauf si vous utilisez le count pour augmenter chaque fois que vous instanciez une classe à partir de ce module, alors method 1 est le chemin à parcourir.

Je préfère le faire de cette façon:

module M {
  export class C {
    static count : number = 0;
    constructor() {
      C.count++;  
    }
  }
}
1
répondu Mustafa Dwekat 2016-03-22 12:57:05