Este TypeError se lanza cuando el valor después de 'extends' no es una función constructora o clase. JavaScript permite cualquier expresión después de 'extends', por lo que una variable que contiene null, undefined o un objeto plano causará este error en el momento de la definición de la clase.
Por qué ocurre
- •La variable de la clase padre es null porque no se importó correctamente.
- •Una dependencia circular hace que el módulo padre exporte undefined en el momento de la evaluación.
- •Extender un valor devuelto por una función factory que devolvió null en caso de fallo.
- •Un error tipográfico en el nombre de importación resuelve a undefined.
Ejemplos
Código que causa el error
const Base = null;
class Child extends Base {
greet() { return "hi"; }
}Error en la terminal
TypeError: Class extends value null is not a constructor or null
Cómo solucionarlo
Verifica que el valor que estás extendiendo sea una clase o función constructora. Depura las importaciones circulares si el padre es undefined en el momento de la evaluación. Agrega una aserción en tiempo de ejecución: if (typeof Base !== 'function') throw new Error('Base is not a constructor').
Código corregido
class Base {
greet() { return "hello"; }
}
class Child extends Base {
greet() { return super.greet() + " there"; }
}Errores relacionados
¿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