我正在尝试从类中的非静态函数访问静态成员,并且出现错误
无法从实例变量
访问静态成员
这是我的代码看起来的样子 -
class myClass {
public static testStatic: number = 0;
public increment(): void {
this.testStatic++;
}
}
根据我对静态成员/方法的理解,我们不应该访问静态函数中的非静态成员,反之亦然。 静态成员已经创建并且有效,那么为什么我不能从我的非静态方法访问?
答案 0 :(得分:10)
从类内部访问静态成员的方式与从类外部访问的方式相同:
class myClass {
public static testStatic: number = 0;
public increment(): void {
myClass.testStatic++;
}
}
答案 1 :(得分:1)
我个人更喜欢以下精神:
class myClass{
public static testStatic: number = 0;
private class;
constructor(){
this.class = myClass;
}
public increment(): void {
this.class.testStatic++;
}
}
一个很酷的事情是打字稿实际上允许我使用' class'作为变量。
答案 2 :(得分:0)
为了允许继承,您必须在实例方法中使用,以便不重复className:
<typeof ParentClass>this.constructor
请参阅此答案中的更新部分: https://stackoverflow.com/a/29244254/1936549