0Pricing
Vue Academy · Lektion

Composables und Refs typisieren

Ref , ComputedRef , typisierte Rückgabewerte von Composables und MaybeRef

Composables und Refs typisieren ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vue Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.

Die Composition API typisieren

Composables sind einfach Funktionen, und Refs sind einfach typisierte Container. Durch explizite Typen werden Ihre Composables sicher verwendbar, und Aufrufer erhalten vollständige Autovervollständigung.

Abgeleitete ref-Typen

Meistens leitet TypeScript den Typ eines Refs aus seinem Anfangswert ab. Ein ref(0) ist automatisch ein Ref<number>.

import { ref } from 'vue'
const count = ref(0)        // Ref<number>
const name = ref('Coddy')  // Ref<string>

Explizite ref-Generics

Wenn der Anfangswert den vollständigen Typ nicht ausdrücken kann – etwa bei einem Wert, der mit null beginnt und später zu einem Objekt wird –, übergeben Sie ein explizites Generic.

interface User { id: number; name: string }
const user = ref<User | null>(null)

Der Ref-Typ

Ref<T> beschreibt einen beschreibbaren Ref, dessen .value den Typ T hat. Verwenden Sie ihn, um Variablen oder Funktionsparameter zu annotieren, die Refs erhalten.

import type { Ref } from 'vue'
function useDouble(n: Ref<number>) {
  return computed(() => n.value * 2)
}

Der ComputedRef-Typ

Ein computed gibt einen schreibgeschützten ComputedRef<T> zurück. Verwenden Sie diesen Typ, wenn Sie ein Composable annotieren, das berechnete Werte zurückgibt.

import type { ComputedRef } from 'vue'
const doubled: ComputedRef<number> = computed(() => count.value * 2)

Den Rückgabewert eines Composables typisieren

Annotieren Sie die Rückgabestruktur, damit Nutzer genau sehen, was sie erhalten. Ein expliziter Rückgabetyp dokumentiert das Composable außerdem.

import { ref, type Ref } from 'vue'
function useCounter(): { count: Ref<number>; increment: () => void } {
  const count = ref(0)
  const increment = () => count.value++
  return { count, increment }
}

Die Typinferenz arbeiten lassen

Oft können Sie den expliziten Rückgabetyp weglassen und ihn von TypeScript ableiten lassen. Fügen Sie nur dann einen expliziten Typ hinzu, wenn Sie einen stabilen öffentlichen Vertrag festlegen möchten.

MaybeRef für flexible Eingaben

MaybeRef<T> bezeichnet einen Wert, der entweder ein einfacher T oder ein Ref<T> sein kann. Dadurch können Composables beide Formen akzeptieren.

import type { MaybeRef } from 'vue'
function useGreeting(name: MaybeRef<string>) {
  // name could be 'Coddy' or ref('Coddy')
}

Mit unref auspacken

unref(x) gibt x.value zurück, wenn x ein Ref ist, andernfalls x selbst. Kombinieren Sie es mit MaybeRef, um die Eingabe zu vereinheitlichen.

import { unref, type MaybeRef } from 'vue'
function useGreeting(name: MaybeRef<string>) {
  const text = unref(name) // always a string
  return 'Hello ' + text
}

toValue: Der moderne Helfer

Vue 3 hat toValue hinzugefügt. Es packt Refs aus und ruft Getter-Funktionen auf. Dies ist die bevorzugte Methode, um MaybeRefOrGetter-Eingaben zu vereinheitlichen.

import { toValue, type MaybeRefOrGetter } from 'vue'
function useLen(input: MaybeRefOrGetter<string>) {
  return computed(() => toValue(input).length)
}

Reaktive Objekte typisieren

reactive leitet den Objekttyp direkt ab – .value ist nicht erforderlich. Für eine explizite Typisierung annotieren Sie die Variable mit dem Objekt-Interface.

import { reactive } from 'vue'
interface State { count: number; name: string }
const state: State = reactive({ count: 0, name: '' })

Schnelltest

Testen Sie Ihr Wissen über die Typisierung von Composables und Refs.

Zusammenfassung

Sie haben gelernt, die Composition API zu typisieren:

  • ref leitet Typen ab; verwenden Sie ref<T>(), wenn der Anfangswert nicht ausreicht.
  • Ref<T> und ComputedRef<T> annotieren Refs und Computeds.
  • Typisieren Sie Rückgabewerte von Composables, um einen klaren Vertrag festzulegen.
  • MaybeRef<T> + unref()/toValue() akzeptieren flexible Eingaben.

Häufig gestellte Fragen

Ist die Lektion „Composables und Refs typisieren“ kostenlos?

Ja — der vollständige Text von „Composables und Refs typisieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vue Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Composables und Refs typisieren“?

Ref , ComputedRef , typisierte Rückgabewerte von Composables und MaybeRef Du übst Vue Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Vue Academy zu starten?

Keine Vorkenntnisse erforderlich. Vue Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Composables und Refs typisieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Vue Academy-Lektion Code schreiben und ausführen?

Ja. Jede Vue Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. TypeScript-Einrichtung in Vue-Projekten
  2. Typisierte Props und Emits mit defineProps/defineEmits
  3. Composables und Refs typisieren
  4. Generische Vue-Komponenten
← Zurück zu Vue Academy