В JS не представляется возможным проверить, действительно ли аргумент, переданный функции, имеет тип 'error' или экземпляр Error.
Например, это недопустимо:
typeof err === 'error'
поскольку существует только 6 возможных типов (в виде строк):
Оператор typeof возвращает информацию о типе в виде строки. Существует шесть возможных значений, которые возвращает typeof
:
"число", "строка", "логическое значение", "объект", "функция" и "неопределенное".
Но что, если у меня есть простой пример использования, подобный этому:
function errorHandler(err) {
if (typeof err === 'error') {
throw err;
}
else {
console.error('Unexpectedly, no error was passed to error handler. But here is the message:',err);
}
}
так каков наилучший способ определить, является ли аргумент экземпляром Error?
является оператор instanceof
какой-либо помощи?