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"
}
Специфікації
Специфікація |
---|
ECMAScript Language Specification (ECMAScript) # sec-native-error-types-used-in-this-standard-typeerror |
Сумісність із браузерами
desktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | 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 | 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 |