Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

142
Views
¿Por qué no puedo iterar sobre las propiedades de una clase antes de crear una instancia?

¿Alguien puede explicarme por qué no puedo iterar sobre las propiedades (editar: escribieron prototipos falsamente primero) de una clase sin crear una instancia de ella? Un pequeño ejemplo estúpido sería:

 export class Animal { name: string; colour: string; constructor(init: string[]) { this.name = init[0]; this.color = init[1] } }

Ahora, en otro lugar del programa (mucho antes de que se "cree" el primer libro), me gustaría hacer esto:

 for (const key in Object.keys(Animal) { // here I would expect to iterate over the keys 'name' and 'colour' so I can do something like: console.log(Animal[key]); }

Soy consciente de que no es posible (publicación anterior aquí y también según MDN ). Pero no entiendo las explicaciones proporcionadas. ¿Podría explicarme por qué es así?

Y, como seguimiento, ¿cómo manejaría tal situación? ¿Debo crear una interfaz/tipo externo que repita? En general, me gustaría tener un solo lugar que "contenga" mis propiedades animales.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Porque las propiedades de Animal no son enumerables como se puede ver en este ejemplo:

 Object.getOwnPropertyDescriptors(Animal) { "length": { "value": 1, "writable": false, "enumerable": false, "configurable": true }, "name": { "value": "Animal", "writable": false, "enumerable": false, "configurable": true }, "prototype": { "value": {}, "writable": false, "enumerable": false, "configurable": false } }

Si establece las propiedades de la clase en estáticas, se vuelven enumerables. Alternativamente, puede iterarlos de esta manera:

 for (const key in Object.getOwnPropertyDescriptors(Animal)) { console.log(Animal[key]); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!