如何在Typescript中获取属性名称和类名称

时间:2018-06-24 14:53:01

标签: typescript

如何在Typescript中获取属性名称或类名称。 就像nameof()用c#语言编写的函数一样。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果要引用构造函数,则类名基本上位于其对象的属性name下。如果object是某个类的实例,则需要获取其构造函数,然后获取名称。假设我们有课程Test:

class Test {
   someProp = null;
   someFunc() {}
}

仅通过引用name属性即可获得其名称:

Test.name

如果我们有例如。变量testInstance是Test类的实例,我们需要通过constructor属性到达其构造函数,然后获取一个名称:

instance.constructor.name

由于函数也是构造函数,因此可以对它们执行相同操作:

instance.someFunc.name

不幸的是,我们无法获得属性名称(即使通过实例的键进行迭代,某些变量也可以存储相同的值或对同一对象的引用)。

但是,可能有很多方法可以实现您的目标。例如。如果要将实例中存储的所有属性设置为params,则可以通过for in循环遍历每个属性。另一种方法是不仅将值存储,而且将整个对象作为key-value对存储在变量中