我们说我有一个班级模型Person
export class Person {
name:string;
lastname:string;
}
在控制器中,我为这种类设置了一个变量。
Object.keys(person)
仅返回已定义的属性。有没有办法访问所有类属性而无需定义它们中的每一个?或者我是否必须在类中创建一个构造函数才能初始化对象?
答案 0 :(得分:1)
您可以使用以下方式迭代实例成员:
const person = new Person();
Object.getOwnPropertyNames(person).forEach((val, idx, array) => {
console.log(val);
});
但是在TypeScript中有一个额外的问题...如果从未设置过属性,它就不会出现在输出中,所以你的示例类是:
class Person {
name:string;
lastname:string;
}
如果您只创建一个新实例而没有设置然后设置值,实际上没有属性,即:
var Person = /** @class */ (function () {
function Person() {
}
return Person;
}());
如果要查看它们,请创建构造函数参数,或设置默认值。
构造函数参数:
class Person {
constructor(public name: string, public lastname: string) { }
}
默认值:
class Person {
name: string = '';
lastname: string = '';
}