TypeError

The TypeError object represents an error when a value is not of the expected type.

Syntax

new TypeError([message[, fileName[, lineNumber]]])

Parameters

message
Optional. Human-readable description of the error
fileName
Optional. The name of the file containing the code that caused the exception
lineNumber
Optional. The line number of the code that caused the exception

Description

A TypeError is thrown when an operand or argument passed to a function is incompatible with the type expected by that operator or function.

Properties

TypeError.prototype
Allows the addition of properties to a TypeError object.

Methods

The global TypeError contains no methods of its own, however, it does inherit some methods through the prototype chain.

TypeError instances

Properties

TypeError.prototype.constructor
Specifies the function that created an instance's prototype.
TypeError.prototype.message
Error message. Although ECMA-262 specifies that TypeError should provide its own message property, in SpiderMonkey, it inherits Error.prototype.message.
TypeError.prototype.name
Error name. Inherited from Error.
TypeError.prototype.fileName
Path to file that raised this error. Inherited from Error.
TypeError.prototype.lineNumber
Line number in file that raised this error. Inherited from Error.
TypeError.prototype.columnNumber
Column number in line that raised this error. Inherited from Error.
TypeError.prototype.stack
Stack trace. Inherited from Error.

Methods

Although the TypeError prototype object does not contain any methods of its own, TypeError instances do inherit some methods through the prototype chain.

Examples

Catching a TypeError

try {
  null.f();
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message);              // "null has no properties"
  console.log(e.name);                 // "TypeError"
  console.log(e.fileName);             // "Scratchpad/1"
  console.log(e.lineNumber);           // 2
  console.log(e.columnNumber);         // 2
  console.log(e.stack);                // "@Scratchpad/2:2:3\n"
}

Creating a TypeError

try {
  throw new TypeError('Hello', "someFile.js", 10);
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message);              // "Hello"
  console.log(e.name);                 // "TypeError"
  console.log(e.fileName);             // "someFile.js"
  console.log(e.lineNumber);           // 10
  console.log(e.columnNumber);         // 0
  console.log(e.stack);                // "@Scratchpad/2:2:9\n"
}

Specifications

Specification Status Comment
ECMAScript 3rd Edition (ECMA-262)
The definition of 'TypeError' in that specification.
Standard Initial definition
ECMAScript 5.1 (ECMA-262)
The definition of 'TypeError' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'TypeError' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'TypeError' in that specification.
Draft  

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

See also

Document Tags and Contributors

 Contributors to this page: jameshkramer, fscholz, Sebastianz, ward, Mingun, arai, Sheppy, Potappo, Sevenspade
 Last updated by: jameshkramer,