We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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 Latest Draft (ECMA-262)
TypeError の定義
ドラフト  

ブラウザ実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応 あり あり1 あり あり あり
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 あり あり あり4 あり あり あり

参照

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

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