`TypeError（类型错误）` 对象用来表示值的类型非预期类型时发生的错误。

## 语法

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

### 参数

`message 消息`
  可选. 描述此错误
`fileName 文件名`
  可选. 引起该异常的代码所在的文件的名字。
`lineNumber 行号`
  可选. 引起该异常的代码的行号。

## 描述

当传入函数的操作数或参数的类型并非操作符或函数所预期的类型时，将抛出一个 TypeError 类型错误。

## 属性

`TypeError.prototype`
  允许为一个 TypeError 类型错误附加属性。

## 方法

全局 TypeError 不包含任何方法，不过，它将从原型链中继承一些方法。

## `TypeError` 类型错误实例

### 属性

`TypeError.prototype.constructor`
  声明创建实例原型 (prototype) 的方法。
`TypeError.prototype.message`
  错误信息。虽然 ECMA-262 规范指出 `TypeError` 应该实现其自身的 `message` 属性，但是在 SpiderMonkey 中，该属性继承自 `Error.prototype.message`。
`TypeError.prototype.name`
  错误名称。继承自 `Error`。
`TypeError.prototype.fileName`
  引起该错误的代码所在文件的路径。继承自 `Error`。
`TypeError.prototype.lineNumber`
  引起错误的代码所在行的行号。继承自 `Error`。
`TypeError.prototype.columnNumber`
  引起错误的代码所在列的列号。继承自 `Error`。
`TypeError.prototype.stack`
  堆栈跟踪记录。 继承自 `Error`。

### 方法

尽管 `TypeError` 不包含任何自己的方法, 但`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"
    }

### 示例: 创建一个类型错误

    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"
    }

## 规范

规范 | 状态 | 说明
--- | --- | ---
ECMAScript 3rd Edition (ECMA-262) TypeError | Standard | 初始定义。
ECMAScript 5.1 (ECMA-262) TypeError | Standard |
ECMAScript 2015 (6th Edition, ECMA-262) TypeError | Standard |

## 浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

Update compatibility data on GitHub

| Desktop | Mobile | Server
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet | Node.js
`TypeError` | Chrome Full support Yes | Edge Full support Yes | Firefox Full support 1 | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs Full support Yes

### Legend

Full support
  Full support

## 相关链接

- `Error`
- `TypeError.prototype`