@DobrykovM

Как решить данную ошибку типизации и почему она возникает?

Использую nuxt 3
У меня есть страница где создается следующая ошибка в случае если по определенному url нет данных
if (!restaurant) {
  throw createError({ statusCode: 404, statusMessage: 'Page Not Found', data: {redirectTitle: 'Go restaurants', redirectLink: '/restaurants'} })
}


в главном файле ошибок error.vue вот так (описание ошибки на скриншоте)
6416daec30d68438150414.png

Поидее поле data есть в указанном типе, но не могу понять на что ругается IDE
Здесь описаны какие типы могут быть
https://nuxt.com/docs/getting-started/error-handli...

Если заменить вот так
const error = useError() as any
то ошибки не будет, но не очень понимаю что нужно импортировать вместо any или возможно как-то по другому это можно решить
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега TypeScript
Crazy on performance...
if (error.value && 'data' in error.value) {
  // ...
}

https://www.typescriptlang.org/docs/handbook/2/nar...

Если кратко, то у error.value тип - юнион, а у юниона можно использовать только свойства, общие для всех вариантов, либо уточнять тип через type guards.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы