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 ownmessage
property, in SpiderMonkey, it inheritsError.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
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
Tags:
Contributors to this page:
jameshkramer,
fscholz,
Sebastianz,
ward,
Mingun,
arai,
Sheppy,
Potappo,
Sevenspade
Last updated by:
jameshkramer,