Angular 如何列出所有组件属性
我想在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
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示例将一个角度组件属性记录到控制台中。如果我不先初始化私有属性,它们就不会显示。我想我真的没有什么好办法。