TypeScript:全局静态变量最佳实践

Tho*_*sen 41 typescript

我有这个类,每次实例化类时我都需要增加一个数字.我找到了两种方法,两种方式都有效,但我不确定最佳做法是什么

  1. 在模块范围中声明变量

    module M {
      var count : number = 0;
      export class C {
        constructor() {
          count++;
        }
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 声明类范围中的变量并在Class上访问它

    module M {
      export class C {
        static count : number = 0;
        constructor() {
          C.count++;  
        }
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

我的观点是示例二,因为它没有在模块范围中添加count变量.

另请参见:C#在实例化时递增静态变量

bas*_*rat 34

绝对是方法2,因为那是使用变量的类.所以它应该包含它.

在案例1中,您使用的变量一旦您有多个类就会变得混乱,例如:

module M {

  var count : number = 0;

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

  export class A{
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果C类不是唯一一个使用count的类,那么我不会在包级别看到它。更重要的是变量名。在代码的大多数地方,“ count”这个名称不足以表示其含义。我更喜欢'numConstructed'或'constructedCount'。 (2认同)