Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

144
Visualizações
JSDoc no detecta la anulación del tipo de atributo secundario de datos

He notado un problema al trabajar con una clase principal que se amplía con una clase secundaria. Ambas clases tienen un atributo de 'datos', en la clase principal es un tipo genérico de 'Objeto' y en la clase secundaria es del tipo 'DogData'.

El constructor del padre está configurando 'this.data = data' que debería anular el tipo a cualquier tipo de atributo del niño, pero esto no está sucediendo.

Encuentre un pequeño ejemplo reproducible a continuación:

Espero que me estoy perdiendo algo y por favor no dude en señalarlo si es así.

Gracias por adelantado

 * The animal base class * @class */ class Animal { /** * @param {number} id The ID of the animal * @param {Object} data The data of the animal */ constructor (id, data) { this.id = id this.data = data } } /** * The Dog class * @class * @extends Animal */ class Dog extends Animal { /** * @typedef DogData * @property {number} age * @property {string} name */ /** * @param {number} id The ID of the dog * @param {DogData} data The data of the dog */ constructor (id, data) { super(id, data) } } const dog = new Dog(1, { age: 10, name: 'Foobar' }) dog.data. // Will only autocomplete if this.data is explicitly set inside the Dog constructor
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Defina la propiedad antes del constructor y use @type en ella.

 class Dog extends Animal { /** * @typedef DogData * @property {number} age * @property {string} name */ /** * @type {DogData} */ data; /** * @param {number} id The ID of the dog * @param {DogData} data The data of the dog */ constructor (id, data) { super(id, data) } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda