【初心者卒業】TypeScriptのError型を完全マスター!種類・使い方・スタックトレースまで徹底解説

  • 2025年5月1日
  • 2025年5月1日
  • TypeScript
  • 7View
  • 0件

【初心者卒業】TypeScriptのError型を完全マスター!種類・使い方・スタックトレースまで徹底解説

「TypeScriptでエラー処理ってどうやるの?」「Error型ってよく見るけど、正直よくわからない…」

そんな悩みを持つ方のために、この記事では TypeScriptのError型の基礎から応用まで をやさしく・深く解説します。

Error型って何?

JavaScript(およびTypeScript)における Error は、実行時に問題が発生したことを示すオブジェクトです。

構文エラー(SyntaxError)や型エラー(TypeError)など、あらゆる例外を表現できます。


try {
  throw new Error("何かがおかしい!");
} catch (e) {
  console.error(e.message); // => 何かがおかしい!
}
  

よく使うError型の種類

  • Error:基本のエラー型
  • TypeError:型が期待と異なるとき
  • RangeError:範囲外の値を扱ったとき
  • SyntaxError:構文が不正なとき(evalなど)
  • ReferenceError:未定義の変数を参照したとき
  • URIError:不正なURI操作があったとき
  • AggregateError:複数のエラーをまとめて表現(Promise.anyなど)

Errorのプロパティ

TypeScriptでErrorを使うと、以下のようなプロパティが使えます:

  • name:エラーの名前(例:”TypeError”)
  • message:エラーの説明
  • stack:スタックトレース(関数の呼び出し履歴)

const err = new TypeError("これは型のエラーです");
console.log(err.name);    // => "TypeError"
console.log(err.message); // => "これは型のエラーです"
console.log(err.stack);   // => 呼び出しスタック
  

スタックトレースとは?

スタックトレースとは、プログラムがどのように実行されて今のエラーに至ったかを示す関数の呼び出し履歴です。

デバッグにおいて非常に重要な情報です。

カスタムErrorの作り方

独自のエラークラスを定義すれば、より明確で読みやすいエラー処理が可能です。


class ValidationError extends Error {
  constructor(message: string) {
    super(message);
    this.name = "ValidationError";
  }
}

throw new ValidationError("この入力は無効です!");
  

try-catchと型ガード

catch句で型安全に扱うには型ガードを使うのがおすすめです。


try {
  // 何か処理
} catch (e: unknown) {
  if (e instanceof Error) {
    console.error(e.message);
  } else {
    console.error("未知のエラー:", e);
  }
}
  

まとめ

  • ErrorはTypeScriptのエラー処理の基盤
  • 使い分けることでエラーが明確になり保守性がアップ
  • スタックトレースはデバッグの大事なヒント
  • 独自エラーを定義して明確な責任分離が可能

▼ 関連記事もぜひどうぞ!

【初心者必見】TypeScriptのanyとunknownの違いを完全解説!