Задать вопрос
@QWERTY01

Почему во vue 3 нет ошибок несмотря на разные типы данных при асинхронном запросе?

1. Файл с интерфейсом
export interface CategoriesInterface {
  base: number,
  date: string,
  rates: {
    [key: string]: number
  },
  success: boolean,
  timestamp: number
}


2. фай с присвоением.
Здесь переменной currency.value присваивается результат асинхронного запроса
<script lang="ts">
 import { ref, onMounted } from 'vue'
import { CategoriesInterface } from '@/interface/currency-interface'

 export default {
   name: 'Home',
   const currency = ref<CategoriesInterface | null>(null)
  
    onMounted(async () => {
      currency.value = await store.dispatch('fetchCurrency')
    })
}
</script>


3. с запроса приходит следующий объект
то есть в интерфейсе у поля base задан тип number, а приходит строка (base: 'EUR') и никакой ошибки нет в консоли.
{
        base: 'EUR',
        date: '2022-03-27',
        rates: {
          EUR: 1,
          RUB: 112,
          USD: 1
        },
        success: true,
        timestamp: 1648371543
      }


4. файл vuex где происходит запрос
********
actions: {
    async fetchCurrency() {
      const { data } = await axios(`http://ссылка`)
      return data
    }
  }
************


Пробовал для теста скопировать объект который приходит из запроса и вручную вставить в currency.value, тогда ошибка появляется, а вот если тот же объект приходит через запрос к серверу, то никаких ошибок типизации нет
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@wonderingpeanut
Предполагаю, что return type функции fetchCurrency это any.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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