variable objects method initialize create typescript

objects - TypeScript: mejor práctica de variable estática global



typescript private method (2)

Tengo esta clase donde necesito incrementar un número cada vez que se crea una instancia de la clase. He encontrado dos formas en las que ambas formas funcionan, pero todavía no estoy seguro de cuál es la mejor práctica

  1. declarar la variable en el alcance del módulo

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

  2. declare la variable en el alcance de la clase y acceda a ella en Class

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

Mi opinión es el ejemplo dos, ya que no agrega la variable de conteo en el alcance del módulo.

Ver también: C # incrementando las variables estáticas al instanciar


Definitivamente método 2 ya que esa es la clase que está usando la variable. Entonces debería contenerlo.

En el caso 1 está usando una variable que se volverá confusa una vez que tenga más de una clase, por ejemplo:

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


Ambos están bien, pero el method 2 más fácil de explicar, lo que significa que es menos confuso cuando el código se vuelve más complejo a menos que estés usando el count para aumentar cada vez que instancias una clase de ese módulo, entonces el method 1 es el camino a seguir.

Prefiero hacerlo de esta manera:

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