use*_*991 1 static class typescript
export class Globals
{
   static m_Name : string = "Hello world";
   static m_Version : number = 1.0;
   static m_Canvas : HTMLCanvasElement = null;
   static m_Foo : Foo = null;
}
public OnDocumentLoad() : void
{
     Globals.m_Canvas = <HTMLCanvasElement>document.getElementById('myCanvas');
     Globals.m_Foo = new Foo(m_Name, m_Version);
}
Run Code Online (Sandbox Code Playgroud)
这是staticTypeScript中可接受的用法吗?我不确定静态在这种情况下做什么,除了使成员变量类成员,每个人都可以访问,无论实例如何.但是,例如,在Globals类中是m_Foo和m_Canvas有效的实例,有点像单身人士可以这么说(没有任何未定义的检查,并且可能在OnDocumentLoad之后的任何时候)
最初我没有Globals作为一个类,它们只是我在.ts文件中的泛型var声明我到处都在引用.但我想把它们组织成一个漂亮的小Globals课程.这是我迄今为止测试它的经验,但我想看看是否有任何关于static这里做什么的遗漏.
我在这个主题上发现的最多的是规范:http: //www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf
使用static修饰符的成员声明称为静态成员声明.静态属性成员声明在构造函数函数类型中声明属性(第8.2.5节),并且必须指定包含类中所有静态属性成员声明中唯一的名称,但静态get和set访问器声明可以成对指定一样的名字.请注意,实例和静态属性成员的声明空间是分开的.因此,可以使实例和静态属性成员具有相同的名称
从那里我可以看出你可以创建一个Globals的实例,它的成员将有一个不同的含义,只是调用Globals.m_Name例如,但我不打算在这里这样做.
如果要创建名称空间对象,请使用module:
export module Globals
{
   export var m_Name : string = "Hello world";
   export var m_Version : number = 1.0;
   export var m_Canvas : HTMLCanvasElement = null;
   export var m_Foo : Foo = null;
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           80 次  |  
        
|   最近记录:  |