@kot98

Как правильно типизировать переменную?

type Props = {
  item: ApiAddressShop | ApiAddressOffice
}
const name = computed(() => {
  return props.item.office ? props.item.office.name : props.item.name
})

item может быть либо типа ApiAddressShop, либо типа ApiAddressOffice.
Получаю ошибку TS2339: Property 'office' does not exist on type 'ApiAddressShop | ApiAddressOffice'.   Property 'office' does not exist on type 'ApiAddressShop'.
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Поменяй: props.item.office на 'office' in props.item.
Ты не можешь обращаться к свойству которого нет сразу во всех типах union'a. Но ты можешь проверить его наличие, а дальше ts, в зависимости от результата, сузит тип до того, в котором оно присутствует.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы