Property 'id' does not exist on type '' В аргументе функции

Я написал dispatch который авторизует пользователя и в случае успеха возвращает тип User или ResponseError

Собственно сам dispatch

export interface User {
  id?: number
}

export interface ErrorResponse {
  status: number
  errors: object
}

export interface Actions {
  loginUser({ commit }: { commit: Commit }, data: LoginData): Promise<User | ErrorResponse>
}

async loginUser ({ commit }, data) {
    try {
      const user = await loginUser(data)
      commit('setUser', user)
      return user
    } catch (e) {
      return {
        status: e.response.status,
        errors: e.response.data.errors
      }
    }
  }

Вызываю мой dispatch в компоненте

const res = await this.$store.dispatch('loginUser', {
   email: this.formData.email,
   password: this.formData.password
})

redirect(res, 'dashboard')

И в ф-ции redirect я либо делаю редирект на какую то страницу или в случае ошибки показываю предупреждение

const redirect = (res: User | ErrorResponse, redirectTo: string) => {
  if (res.id) {
    router.push({ name: redirectTo })
  } else {
    ElMessage.error('Oops, this is a error message.')
  }
}

Но TS показывает мне ошибку Property 'id' does not exist on type 'User | ErrorResponse'.Property 'id' does not exist on type 'ErrorResponse'.

Что мне нужно сделать, что бы TS не выкидывало в данном случае ошибку?


Ответы (0 шт):