Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

266
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda