W3cubDocs

/JavaScript

TypeError

The TypeError object represents an error when an operation could not be performed, typically (but not exclusively) when a value is not of the expected type.

A TypeError may be thrown when:

  • an operand or argument passed to a function is incompatible with the type expected by that operator or function; or
  • when attempting to modify a value that cannot be changed; or
  • when attempting to use a value in an inappropriate way.

TypeError is a serializable object, so it can be cloned with structuredClone() or copied between Workers using postMessage().

Constructor

TypeError()

Creates a new TypeError object.

Instance properties

TypeError.prototype.message

Error message. Inherited from Error.

TypeError.prototype.name

Error name. Inherited from Error.

TypeError.prototype.cause

Error cause. Inherited from Error.

TypeError.prototype.fileName Non-standard

Path to file that raised this error. Inherited from Error.

TypeError.prototype.lineNumber Non-standard

Line number in file that raised this error. Inherited from Error.

TypeError.prototype.columnNumber Non-standard

Column number in line that raised this error. Inherited from Error.

TypeError.prototype.stack Non-standard

Stack trace. Inherited from Error.

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

Browser compatibility

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet Deno Node.js
TypeError
1
12
1
5.5
5
1
4.4
18
4
10.1
1
1.0
1.0
0.10.0
TypeError
1
12
1
5.5
5
1
4.4
18
4
10.1
1
1.0
1.0
0.10.0
serializable_object
77
79
103
["Version 103 serializable properties: name, message, cause, fileName, lineNumber and columnNumber.", "Version 104 also serializes stack in window.postMessage() and structuredClone()."]
No
64
No
77
77
103
["Version 103 serializable properties: name, message, cause, fileName, lineNumber and columnNumber.", "Version 104 also serializes stack in window.postMessage() and structuredClone()."]
55
No
12.0
No
No

See also

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError