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

271
Visualizações
¿Cómo puede incluir propiedades heredadas en definiciones de tipo generadas a partir de archivos .js por tsc?

Estoy tratando de agregar compatibilidad con mecanografiado a una biblioteca javascript vainilla a través de archivos .d.ts. Estoy tratando de generar estos archivos de definición de tipo con el comando "tsc", pero me encuentro con muchos errores de "la propiedad 'propertyName' no existe en el tipo 'typeName'".

Esto sucede en líneas que intentan llamar a una función en una instancia de una clase secundaria cuando esa función está definida solo en el código de su clase principal. Parece que si bien JSDoc es capaz de inferir funciones heredadas mediante el uso de "@extends" en los comentarios JSDoc de una clase secundaria, tsc no lo es.

Por ejemplo:

ParentClass.js

 /** * This is the parent class. * * @class */ export class ParentClass { parentFunction(){ console.log("Running parent function"); } }

childClass.js

 /** * This is a child class. * * @class * @extends {ParentClass} */ import {ParentClass} from "./ParentClass"; class ChildClass extends ParentClass { // ChildClass vars and functions here }

programa.ts

 import {ChildClass} from "./ChildClass"; let cc = new ChildClass(); cc.parentFunction();

Al intentar compilar el código, tsc arrojará este error:

error TS2339: la propiedad 'parentFunction' no existe en el tipo 'ChildClass'.

¿Hay alguna manera de resolver este problema? Si no hay forma de hacer que el compilador de mecanografiado reconozca las propiedades heredadas, ¿hay alguna forma de hacer que tsc ignore este problema para que al menos pueda terminar de generar los archivos de definición de tipo y permitirme agregar manualmente las propiedades que faltan al tipo de clase secundaria correspondiente? definiciones?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Olvidó importar los otros archivos en childClass.js y program.js . Debería ser algo como esto:


ParentClass.js

 /** * This is the parent class. * * @class */ export class ParentClass { parentFunction(){ console.log("Running parent function"); } }

childClass.js

 import { ParentClass } from './ParentClass' /** * This is a child class. * * @class * @extends {ParentClass} */ export class ChildClass extends ParentClass { // ChildClass vars and functions here }

programa.js

 import { ChildClass } from './childClass' let cc = new ChildClass(); cc.parentFunction();
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