Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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
Angular 如何列出所有组件属性_Angular_Unit Testing_Typescript_Properties - Fatal编程技术网

Angular 如何列出所有组件属性

Angular 如何列出所有组件属性,angular,unit-testing,typescript,properties,Angular,Unit Testing,Typescript,Properties,我想在angular中列出所有组件属性(私有和公共) 我试过以下方法 ngOnInit() { console.log(this.constructor.prototype); } 但这只是打印定义了getter方法的属性。它不会打印没有getter或setter的属性。它还打印组件方法,我不介意 奇怪的是,它甚至没有显示公共属性(没有getter) 就连我都试过了 console.log(this.constructor.prototype.hasOwnProperty('_quer

我想在angular中列出所有组件属性(私有和公共)

我试过以下方法

ngOnInit() {
    console.log(this.constructor.prototype);
}
但这只是打印定义了
getter
方法的属性。它不会打印没有
getter
setter
的属性。它还打印组件
方法
,我不介意

奇怪的是,它甚至没有显示公共属性(没有getter)

就连我都试过了

console.log(this.constructor.prototype.hasOwnProperty('_queryState'));
但是它返回我
false
,这意味着它无法识别属性

但这对我没有帮助

如何列出所有属性


如果有人问我为什么需要这样做,那是为了单元测试。

您可以使用javascript
Object.keys

let component={a:17,b:'test',c:[17,17,17]};
让keys=Object.keys(组件);
对于(让钥匙中的钥匙){
log('component['+key+']='+component[key]);

}
像这样的吗@Ric仍然打印相同的结果。未打印任何私有属性。属性是否已初始化@TitianCernicova Dragomir没有,但我尝试在初始化私有属性后打印它们。它仍然不在结果中。如果属性被初始化,那么如果您使用
对象,它们将显示。键
,它们将不会出现在原型上,因为它们不在那里。它们是实例级字段。在我的例子中,组件不是javascript对象。它是一个角度分量。而且
Object.keys(this.construtor.prototype)
即使私有属性已初始化,也不会打印它们。如何声明组件?stackblitz示例将一个角度组件属性记录到控制台中。如果我不先初始化私有属性,它们就不会显示。我想我真的没有什么好办法。