JavaScript

An error that happens when you try to do something that doesn’t match the value’s type.

TypeError

TypeError とは?

プログラムを動かしている途中で、「その操作はこの型(タイプ)の値ではできません!」というエラーが出ることがあります。

それが TypeError(タイプエラー) です。

JavaScript は「型(type)」という考え方を持っていて、数値・文字列・オブジェクトなどの“種類”が違う値には、できること・できないことがあります。

もし間違った型に対して操作をしようとすると、TypeError が起こります。

たとえば…

JavaScript

let text = "こんにちは";
text(); // ← 文字列は関数ではないので、呼び出せない!

この場合、ブラウザのコンソールにはこんなメッセージが出ます:

JavaScript

TypeError: text is not a function

つまり「文字列型の値を関数として使おうとしたよ。でもそれは無理だよ!」という意味です。

よくあるTypeErrorの例

関数ではないものを呼び出したとき

JavaScript

let num = 123;
num(); // 数値を関数のように呼び出してしまった

存在しないメソッドを使おうとしたとき

JavaScript

let arr = [1, 2, 3];
arr.pushh(4); // push のつづりミス!
// TypeError: arr.pushh is not a function

undefined や null にアクセスしたとき

JavaScript

let user;
console.log(user.name); // user は undefined なのでエラー
// TypeError: Cannot read properties of undefined

対処のポイント