TypeError

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

* 此特性的某些部分可能存在不同級別的支援。

TypeError 物件表示操作未能執行的錯誤,通常(但不僅限於)當值不是預期型別時。

當以下情況發生時,可能會丟擲 TypeError

  • 傳遞給函式的運算數或引數與該運算子或函式預期的型別不相容;或
  • 嘗試修改無法更改的值時;或
  • 嘗試以不適當的方式使用值時。

TypeError 是一個 可序列化的物件,因此可以使用 structuredClone() 進行克隆,或者使用 postMessage()Workers 之間複製。

TypeErrorError 的子類。

建構函式

TypeError()

建立一個新的 TypeError 物件。

例項屬性

還繼承了其父級 Error 的例項屬性。.

這些屬性定義在 TypeError.prototype 上,並被所有 TypeError 例項共享。

TypeError.prototype.constructor

建立例項物件的建構函式。對於 TypeError 例項,初始值為 TypeError 建構函式。

TypeError.prototype.name

表示錯誤的型別名稱。對於 TypeError.prototype.name,初始值為 "TypeError"

例項方法

繼承了其父級 Error 的例項方法。.

示例

捕獲 TypeError

js
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.stack); // Stack of the error
}

建立 TypeError

js
try {
  throw new TypeError("Hello");
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "TypeError"
  console.log(e.stack); // Stack of the error
}

規範

規範
ECMAScript® 2026 語言規範
# sec-native-error-types-used-in-this-standard-typeerror

瀏覽器相容性

另見