Lingua-e
← Errores
JavaScript

Qué significa TS2515: Miembro abstracto no implementado y cómo solucionarlo

Referencia del error

TS2515: Miembro abstracto no implementado

Lenguaje

JavaScript

Severidad

Media

Cuándo ocurre

El error TS2515 de TypeScript se reporta cuando una clase concreta (no abstracta) extiende una clase abstracta pero no implementa todos sus miembros abstractos.

Posibles soluciones

Implementa todos los métodos abstractos en tu clase concreta. Tu IDE generalmente mostrará qué métodos faltan. Al agregar un nuevo método abstracto a una clase base, TypeScript marcará inmediatamente todas las subclases que necesitan actualizarse.

Más detalles

El error TS2515 de TypeScript se reporta cuando una clase concreta (no abstracta) extiende una clase abstracta pero no implementa todos sus miembros abstractos. Los miembros abstractos definen la interfaz que las subclases deben cumplir.

Por qué ocurre

  • A una subclase le falta una implementación de uno o más métodos abstractos.
  • Se agregó un método a la clase abstracta pero aún no se agregó a todas las subclases.
  • Copiar y pegar una definición de clase sin actualizar las implementaciones abstractas.
  • Renombrar un método abstracto sin actualizar la sobreescritura de la subclase.

Posibles soluciones

Implementa todos los métodos abstractos en tu clase concreta. Tu IDE generalmente mostrará qué métodos faltan. Al agregar un nuevo método abstracto a una clase base, TypeScript marcará inmediatamente todas las subclases que necesitan actualizarse.

Ejemplos

JavaScript

Código que causa el error

abstract class Shape {
  abstract area(): number;
}

class Circle extends Shape {
  // forgot to implement area()
}

Error en la terminal

error TS2515: Non-abstract class 'Circle' does not implement inherited abstract member 'area' from class 'Shape'.

Código corregido

abstract class Shape {
  abstract area(): number;
}

class Circle extends Shape {
  constructor(private radius: number) {
    super();
  }
  area(): number {
    return Math.PI * this.radius ** 2;
  }
}

Practica en inglés

¿Cómo le explicarías un TS2515: Abstract Member Not Implemented a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis