typescript - Specificera returtyp med useFetch från vueuse-biblioteket
Jag försöker specificera returtypen för mina data med funktionen useFetch() från vueuse-biblioteket (inte den från Nuxt3!)
Koden nedan fungerar för att hämta data från API:et men datatypen för datan (person) härleds inte korrekt.
<script setup lang="ts">
import { useFetch } from '@vueuse/core'
interface Person {
id: number
first_name: string
last_name: string
}
const url = 'http://localhost:8000/api/persons/1/'
const { isFetching, data: person } = useFetch<Person>(url).get().json()
console.log(person)
</script>
<template>
<div>
<div v-if="isFetching">
<LoadingIndicator />
</div>
<div v-else>
<div v-if="person">
{{ person.id }}: {{ person.first_name }} {{ person.last_name }}
</div>
</div>
</div>
</template>
Som du kan se nedan förblir datatypen av typen Any. (Jag håller muspekaren över datavärdet):
Konsolloggen:
Om jag hoppar över anropet till json(), då härleds typen korrekt och jag har kodkomplettering i mallen. Objektet parsas dock inte längre som json...
Konsolloggen: Någon idé om hur man får typen att härledas korrekt? Eller är detta bara ett problem med mitt IDE?



