TypeError

Об'єкт TypeError (помилка типу) представляє помилку, при якій операція не може бути виконана, здебільшого (але не винятково) через те, що значення не належить до очікуваного типу.

TypeError може бути викинуто, коли:

  • операнд або аргумент, переданий до функції, несумісний з типом, очікуваним оператором або функцією; або
  • при спробі змінити значення, котре не може бути змінене; або
  • при спробі використати значення у невідповідний спосіб.

TypeError – це серіалізовний об'єкт, тож може бути клонований за допомогою structuredClone() або скопійований між воркерами за допомогою postMessage().

Конструктор

TypeError()

Створює новий об'єкт TypeError.

Властивості примірника

TypeError.prototype.message

Повідомлення помилки. Успадковано від Error.

TypeError.prototype.name

Ім'я помилки. Успадковано від Error.

TypeError.prototype.cause

Причина помилки. Успадковано від Error.

TypeError.prototype.fileName

Шлях до файлу, що запустив цю помилку. Успадковано від Error.

TypeError.prototype.lineNumber

Номер рядка, що запустив цю помилку. Успадковано від Error.

TypeError.prototype.columnNumber

Номер колонки в рядку, що запустила цю помилку. Успадковано від Error.

TypeError.prototype.stack

Траса стека. Успадковано від Error.

Приклади

Перехоплення 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("Привіт", "someFile.js", 10);
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "Привіт"
  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"
}

Специфікації

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
TypeError
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 5.5
Opera Full support 5
Safari Full support 1
WebView Android Full support 1
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
Deno Full support 1.0
Node.js Full support 0.10.0
TypeError() constructor Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 5.5
Opera Full support 5
Safari Full support 1
WebView Android Full support 1
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
Deno Full support 1.0
Node.js Full support 0.10.0
TypeError is serializable
Chrome Full support 77
Edge Full support 79
Firefox No support No
footnote
Internet Explorer No support No
Opera Full support 64
Safari No support No
WebView Android Full support 77
Chrome Android Full support 77
Firefox for Android No support No
footnote
Opera Android Full support 55
Safari on iOS No support No
Samsung Internet Full support 12.0
Deno No support No
Node.js No support No

Дивіться також