TypeError オブジェクトは、値が期待される型でない場合のエラーを表します。

構文

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

引数

message
省略可能。人間に読めるエラーの説明
fileName
省略可能。例外を引き起こしたコードが含まれるファイル名
lineNumber
省略可能。例外を引き起こしたコードの行番号

説明

TypeError は、ある演算子又は関数が期待する型と互換性の無いオペランド又は引数がその関数に渡された場合に投げられます。

プロパティ

TypeError.prototype
TypeError オブジェクトにプロパティを追加することができます。

メソッド

グローバルな TypeError オブジェクトは、自分自身のメソッドを持っていませんが、プロトタイプチェーンを通していくつかのメソッドを継承しています。

TypeError インスタンス

プロパティ

TypeError.prototype.constructor
インスタンスのプロトタイプを生成した関数を示します。
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 インスタンスはプロトタイプチェーンを通していくつかのメソッドを継承しています。

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

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

仕様

仕様書 策定状況 コメント
ECMAScript 3rd Edition (ECMA-262)
TypeError の定義
標準 最初期の定義
ECMAScript 5.1 (ECMA-262)
TypeError の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
TypeError の定義
標準  
ECMAScript 2017 Draft (ECMA-262)
TypeError の定義
ドラフト  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) (有) (有)
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)

参照

ドキュメントのタグと貢献者

 このページの貢献者: yyss, teoli, ethertank, Potappo, Hfjapancom
 最終更新者: yyss,