Étant donné la classe suivante, comment puis-je énumérer ses propriétés, c’est-à-dire obtenir un résultat tel que [station1, station2, station3 ...]
?
Je ne peux que voir comment énumérer les valeurs des propriétés, c'est-à-dire [null, null, null]
.
class stationGuide {
station1: any;
station2: any;
station3: any;
constructor(){
this.station1 = null;
this.station2 = null;
this.station3 = null;
}
}
Vous avez deux options, en utilisant Object.keys () puis forEach , ou utilisez for/in :
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);
}
Avec l'objet Reflect , vous pouvez accéder à n'importe quel objet et le modifier par programmation. Cette approche ne génère pas non plus d'élément "L'élément a implicitement un type" quelconque ", car l'expression de type" chaîne "ne peut pas être utilisée pour indexer le type" {} "".
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)