TypeError: "x" is (not) "y"
Mensaje
TypeError: "x" is (not) "y" Examples: TypeError: "x" is undefined TypeError: "x" is null TypeError: "undefined" is not an object TypeError: "x" is not an object or null TypeError: "x" is not a symbol
Tipo de error
¿Qué salió mal?
Tipo inesperado. Esto ocurre amenudo con valores undefined
o null
.
Además, ciertos métodos, como Object.create ()
o Symbol.keyFor()
, requieren de un tipo específico, que debe ser proporcionado, ejemplos
Casos inválidos
js
// undefined and null cases on which the substring method won't work
var foo = undefined;
foo.substring(1); // TypeError: foo is undefined
var foo = null;
foo.substring(1); // TypeError: foo is null
// Certain methods might require a specific type
var foo = {};
Symbol.keyFor(foo); // TypeError: foo is not a symbol
var foo = "bar";
Object.create(foo); // TypeError: "foo" is not an object or null
Cómo solucionar el problema
Para fijar un puntero nulo a indefinidos o valores nulos, puede utilizar el operador typeof, por ejemplo
js
if (typeof foo !== "undefined") {
// Ahora sabemos que foo está definido, ahora podemos continuar.
}