我已经在类型记录中创建了一个基类,它具有一个泛型类型和逻辑来填充数据表。这个类将由通过各种类的角分量来扩展。我想派生泛型类型的属性,以便动态定义列标题。如何获得正在使用其类型的类的属性?请帮帮忙。
下面是我试图做这件事的最基本的部分。我试图动态地用Dog或Cat类的属性填充displayedColumns:
export class MyBaseClass<T>
{
public displayedColumns: string[] = [];
constructor()
{
let dataItem: T = {} as T;
Object.keys(dataItem).forEach((key: string) => this.displayedColumns.push(key));
}
}
export class PetsComponent extends MyBaseClass<Dog>
{
}
export class Dog
{
public Id: number = 0;
public Name: string = "";
}
export class Cat
{
public Id: number = 0;
public Name: string = "";
}
发布于 2019-03-06 01:31:45
如何获得正在使用其类型的类的属性?
这些类型仅在编译时存在,在生成JavaScript时在构建时被擦除。因此,您不应该依赖于来自泛型实例的智能运行时类型信息。
建议
用数据而不是类型来思考。例如,将行作为string[][]
(行/列的2d数组),由类自己将其数据解析为所需的2d数组。
https://stackoverflow.com/questions/55014108
复制相似问题