TypeError: "x" is (not) "y"
Mensagem
Tipo do erro: "x" é (não é) "y" Exemplos: Tipo do erro: "x" é indefinido Tipo do erro: "x" é nulo Tipo do erro: "x" indefinido" não é um objeto Tipo do erro: "x" não é um objeto ou é nulo Tipo do erro: "x" não é um símbolo
Tipo de erro
O que deu errado?
Houve um tipo inesperado. Isso ocorre muitas vezes com valores undefined ou null.
Além disso, certos métodos, tais como Object.create() ou Symbol.keyFor(), requerem um tipo específico, que deve ser fornecido.
Exemplos
>Casos inválidos
js
// casos undefined e null nos quais o método substring não vai funcionar
var foo = undefined;
foo.substring(1); // TypeError: foo is undefined
var foo = null;
foo.substring(1); // TypeError: foo is null
// Certos métodos podem precisar de um tipo específico
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
Consertando o problema
Para consertar o pointeiro nulo para valores undefined ou null, você pode utilizar o operador typeof , por exemplo.
js
if (typeof foo !== "undefined") {
// Agora nós sabemos que foo está definido, então podemos prosseguir.
}