Перечислять свойства объекта
Учитывая следующий класс, как я могу перечислить его свойства, то есть получить выходные данные, такие как [station1, station2, station3...]
?
Я могу только видеть, как перечислить значения свойств, т.е. [null, null, null]
.
class stationGuide {
station1: any;
station2: any;
station3: any;
constructor(){
this.station1 = null;
this.station2 = null;
this.station3 = null;
}
}
Ответы
Ответ 1
У вас есть два варианта, используя Object.keys(), а затем forEach или используйте для/в:
class stationGuide {
station1: any;
station2: any;
station3: any;
constructor(){
this.station1 = null;
this.station2 = null;
this.station3 = null;
}
}
let a = new stationGuide();
Object.keys(a).forEach(key => console.log(key));
for (let key in a) {
console.log(key);
}
(код на игровой площадке)
Ответ 2
С объектом Reflect вы можете получить доступ к любому объекту и изменить его программным способом. Этот подход также не выдает "Элемент неявно имеет тип" любой ", потому что выражение типа" строка "не может быть использовано для индексации ошибки типа" {} "".
class Cat {
name: string
age: number
constructor(name: string, age: number){
this.name = name
this.age = age
}
}
function printObject(obj: any):void{
const keys = Object.keys(obj)
const values = keys.map(key => '${key}: ${Reflect.get(obj,key)}')
console.log(values)
}
const cat = new Cat("Fluffy", 5)
const dog = {
name: "Charlie",
age: 12,
weight: 20
}
printObject(cat)
printObject(dog)
(код на детской площадке)