假设我有一个接口 A,我按照 Angular 风格指南将其声明为一个类。这个类有很多属性,我想获取它们的名称,而不必为它们分配任何值。我怎样才能做到这一点?
Class A:
export class A {
property1: string;
property2: string;
...
property30: string;
}
我尝试从此类实例化一个新对象并调用Object.keys
and Object.getOwnPropertyNames
但这两个方法返回一个空数组,因为它们忽略未定义的值属性。有什么办法可以绕过这种行为吗?或者我打破了 JavaScript/TypeScript 模式? :D
属性声明的工作方式是它们只是向编译器提示该属性可能在运行时存在。在 JavaScript 中,您不需要声明字段,因此在分配字段之前,它不会存在于对象中。如果您初始化该字段,即使只是使用null
or undefined
该字段将出现在对象上。这是实现您想要的目标的最简单方法。
另一种方法是在每个字段上使用装饰器。这会更明确,但不会更短,也不一定不易出错
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)