Website-Suche

typescript - Rückgabewert mit useFetch der vueuse-Bibliothek angeben


Ich versuche, den Rückgabewert meiner Daten mit der useFetch()-Funktion der vueuse-Bibliothek (nicht der von Nuxt3!) anzugeben

Der Code unten funktioniert, um die Daten von der API zu erhalten, aber der Rückgabewert der Daten (Person) wird nicht korrekt abgeleitet.

<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>

Wie Sie unten sehen können, bleibt der Datentyp vom Typ Any. (Ich bewege den Mauszeiger über den Datenwert):

Die Konsolenprotokoll:

Wenn ich den Aufruf von json() überspringe, wird der Typ korrekt abgeleitet und ich habe Code-Completion im Template. Das Objekt wird jedoch nicht mehr als JSON geparst...

Das Konsolenprotokoll: Irgendwelche Ideen, wie man den Typ korrekt ableiten kann? Oder ist das einfach ein Problem meiner IDE?

Verwandte Artikel