TypeError: "x" is (not) "y"
Сообщение
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
Тип ошибки
Что случилось?
Встречен неожиданный тип. Это часто случается со значениями null или undefined.
Так же, некоторые методы, такие как Object.create() или Symbol.keyFor(), требуют определённый тип, который должен быть предоставлен.
Примеры
>Недопустимые случаи
js
// Случаи undefined и null, при которых метод substring не будет работать
var foo = undefined;
foo.substring(1); // TypeError: foo is undefined
var foo = null;
foo.substring(1); // TypeError: foo is null
// Некоторые методы могут требовать определённый тип
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
Решение проблемы
Что бы исправить ошибку пустого указателя вы можете использовать оператор typeof.
js
if (typeof foo !== "undefined") {
// Теперь мы знаем, что foo определено.
}