TypeError: "x" is (not) "y"

Message

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

Typ b艂臋du

TypeError.

Co posz艂o nie tak?

Pojawi艂 si臋 nieoczekiwany typ, dlatego pojawi艂 si臋 b艂膮d. B艂膮d pojawia si臋 cz臋sto jako undefined albo null dla okre艣lonych warto艣ci.

Dodatkowo niekt贸re metody takie jak Object.create() (en-US) albo Symbol.keyFor() (en-US), wymagaj膮 okre艣lonego typu, kt贸ry musi by膰 zadeklarowany.

Przyk艂ady

Nieprawid艂owe przypadki, kt贸re mog膮 si臋 pojawi膰

// undefined oraz null to przypadki, dla kt贸rych pojawi si臋 b艂膮d
var foo = undefined;
foo.substring(1); // TypeError: foo is undefined

var foo = null;
foo.substring(1); // TypeError: foo is null


//  Niekt贸re metody mog膮 wymaga膰 okre艣lonego typu
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

Jak naprawi膰?

Aby naprawi膰 problem, w przypadku wy艣wietlenia 'undefined' b膮d藕 'null' dla okre艣lonych warto艣ci mo偶na u偶y膰 operatora typeof.

Przyk艂ad

if (typeof foo !== 'undefined') {
  // Teraz wiemy, 偶e zmienna foo jest zdefiniowana
}

Zobacz te偶