如何列出所有组件属性

时间:2018-06-05 12:53:54

标签: angular unit-testing typescript properties

我想以角度列出所有组件属性(私有和公共)。

我试过以下

object o = properties[i].GetValue(this);
string s = o as string;
if (string.IsNullOrEmpty(s))
{ /*...*/ }

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

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

即使我尝试过

methods

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

question对我没有帮助。

如何列出所有属性?

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

1 个答案:

答案 0 :(得分:0)

您可以使用javascript Object.keys

let component = {a: 17, b: 'test', c: [17, 17, 17]};
let keys = Object.keys(component);

for(let key of keys) {
  console.log('component[' + key + '] = ' + component[key]);
}

Here is a running stackblitz example.