このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

TypeError

Baseline
広く利用可能
*

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

* この機能の一部は、対応レベルが異なる場合があります。

TypeError オブジェクトは、演算が実行できなくなった時の新しいエラーを表します。特に値が期待された型ではなかった場合です(ただし、それに限りません)。

TypeError は以下のような場合に発生します。

  • 関数に渡されたオペランドや引数が、その演算子や関数で期待された型と互換性がなかった場合
  • 変更できない値を変更しようとした場合
  • 適切ではない方法で値を使用しようとした場合

TypeError はシリアライズ可能オブジェクトであり、structuredClone() で複製したり、ワーカー間で postMessage() を用いてコピーしたりすることができます。

TypeError は Error のサブクラスです。

コンストラクター

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); // エラーのスタック
}

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); // エラーのスタック
}

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-native-error-types-used-in-this-standard-typeerror

ブラウザーの互換性

関連情報