Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取TypeScript中具有现有对象的类属性_Javascript_Typescript_Typeorm - Fatal编程技术网

Javascript 获取TypeScript中具有现有对象的类属性

Javascript 获取TypeScript中具有现有对象的类属性,javascript,typescript,typeorm,Javascript,Typescript,Typeorm,我想知道是否有可能获得一个类的所有属性,该类拥有一个作为该类实例创建的对象 问题是,我正在尝试为它绑定到的任何实体创建一个通用管理页面。我使用TypeORM,并设法获取所需的实体存储库,从中我能够获得实体对象的实例 现在,我如何让这个泛型实体的类迭代它的属性?我需要它在视图端创建输入字段。当我处理现有实体时(至少当我为它们填充了所有数据时),这不是问题,但是当尝试创建新实体时,这是一个挑战,因为我得到的实例是一个原始的空对象,并且尝试console.dir时,它返回类似于City{}的内容 以下

我想知道是否有可能获得一个类的所有属性,该类拥有一个作为该类实例创建的对象

问题是,我正在尝试为它绑定到的任何实体创建一个通用管理页面。我使用TypeORM,并设法获取所需的实体存储库,从中我能够获得实体对象的实例

现在,我如何让这个泛型实体的类迭代它的属性?我需要它在视图端创建输入字段。当我处理现有实体时(至少当我为它们填充了所有数据时),这不是问题,但是当尝试创建新实体时,这是一个挑战,因为我得到的实例是一个原始的空对象,并且尝试console.dir时,它返回类似于
City{}
的内容

以下是有关该主题的一些基本代码:

public static build(req: Request, res: Response, entityRepository: Repository<any>, args: any) {
    // ...
    if (args.action === 'create') {
        const targetEntity: Function = <Function> entityRepository.target();
        let entity = entityRepository.create();

        // Now I need to get the class of this entity to 
        //pass it to the view that will display input fields accordingly
        console.dir(Object.getPrototypeOf(entity)); // Output: City {}

        // ...
    }
}
获取此类上自己的属性将返回
[]

但是:

这将返回
['bar']

那么,即使未定义类属性名的值,如何获得类属性名而不是对象属性名呢?我希望避免在每个实体上定义每一个属性,并使用诸如“”和0之类的伪值

我希望避免在每个实体上定义每一个属性,并使用诸如“”和0之类的伪值

这种伪值实际上有助于优化JavaScript运行时中JIT编译器生成的机器代码

更重要的是,您无法获取密钥名称,因为generate JavaScript在这种情况下没有内省功能


另一种方法是尝试
instanceof
,但这只告诉类的类型。。。不是它的属性

很不幸,这并没有真正起到作用。我需要获取类属性,即使它们对于当前对象是未定义的(在本例中,它们实际上是因为我得到了一个全新的基于类的对象)。我知道我可以为实体对象类定义默认属性,但如果可能的话,我宁愿避免这样做。是的,我相信这是实现我的目标的唯一途径,而且从技术上讲,除了我对代码一致性的感觉之外,不会破坏这个过程。
class Foo {
    bar: any;
}
class Foo {
    bar: any = "";
}