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, тогда ошибка появляется, а вот если тот же объект приходит через запрос к серверу, то никаких ошибок типизации нет