【发布时间】:2018-10-05 05:01:18
【问题描述】:
Here 是如何从基类非静态成员访问子类静态成员。
我想知道:它是否也可以来自基本静态成员?
我尝试了以下不起作用的代码 (Stackblitz):
export class EntityBase {
// Base static property initialized using a child static memeber
public static TypeName: string = (EntityBase as any).$typeName;
public static StaticBaseMethod(): string {
return (EntityBase as any).$typeName;
}
public static seeIfWorks(): any {
return {
field: EntityBase.TypeName,
method: EntityBase.StaticBaseMethod()
};
}
}
export class Entity extends EntityBase {
public static $typeName: string = "CoolChildType";
}
// Test call
this.test = EntityBase.seeIfWorks()
seeIfWorks() 方法返回的对象的两个属性都是undefined。
问题是不能从基本静态成员直接访问子构造函数。到目前为止,我唯一的方法是将其显式传递给基本静态方法,但也许已经有针对此问题的语言集成解决方案。
【问题讨论】:
标签: typescript oop inheritance static