#typescript #vue.js #nuxt.js
Вопрос:
Я использую машинопись с VueJS
У меня здесь ошибка ввода
Я сделал type assertation
так, как ты видишь
но ошибки продолжаются
catch (err) { const msg = (err as TypeError)?.response?.statusText }
что мне делать ?
Комментарии:
1. Разве так не должно быть
catch (err: TypeError)
?2. @bassxzero typescript этого не поддерживает. Ошибка в блоке catch может быть только
unknown
илиany
.3. @bassxzero , тогда у нас будет ошибка типа в ответе на : err.response
Ответ №1:
Чтобы решить вашу проблему, вы можете проверить err
, действительно ли это TypeError
похоже:
catch (err) { if (err instanceof TypeError) { const msg = err.response?.statusText } }
Дополнительная информация: err
это может быть действительно все, что угодно, так как вы можете использовать в javascript все, что вам нравится (чего вам, вероятно, следует избегать).:
function foo() { try { throw 'this is not an error'; // don't do that! } catch (err) { if (err instanceof Error) { console.error('error', err); } else { console.log('log', err); } } } foo(); // log this is not an error