TypeScript-Deklarationen für Komponentenbibliotheken
vite-plugin-dts, .d.ts-Dateien generieren und Component-Props für Bibliotheksnutzer typisieren
TypeScript-Deklarationen für Komponentenbibliotheken ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.
Warum Typdeklarationen
Verbraucher von TypeScript erwarten .d.ts-Dateien, damit sie für Ihre Komponenten und Props Autovervollständigung und Typprüfung erhalten. Eine veröffentlichte Bibliothek sollte generierte Deklarationen zusammen mit ihrem JavaScript ausliefern.
vite-plugin-dts
vite-plugin-dts erzeugt während des Vite-Builds .d.ts-Dateien aus Ihrem Quellcode, einschließlich Typen für .vue-Single-File-Komponenten.
npm install -D vite-plugin-dtsDas Plugin hinzufügen
Fügen Sie dts() zum Plugins-Array hinzu. Das Plugin läuft nach der Kompilierung und gibt die Deklarationen in dist aus.
import dts from "vite-plugin-dts";
export default defineConfig({
plugins: [vue(), dts()]
});insertTypesEntry
Die Option insertTypesEntry erzeugt eine einzelne index.d.ts-Einstiegsdatei, die alle Ihre Typen erneut exportiert und damit Ihrem JavaScript-Einstiegspunkt entspricht.
dts({
insertTypesEntry: true
})Generierte d.ts-Dateien
Nach dem Build enthält dist .d.ts-Dateien, die Ihre Quellstruktur abbilden, sowie die zusammengefasste Einstiegsdeklaration. Diese beschreiben Component-Props, Emits und Exporte.
// dist/index.d.ts
export { MyButton } from "./MyButton.vue";
// dist/MyButton.vue.d.ts describes its propsDas types-Feld in package.json
Verweisen Sie mit dem Feld types (oder typings) auf die Einstiegsdeklaration, damit TypeScript die Typen Ihrer Bibliothek auflösen kann.
{
"types": "./dist/index.d.ts"
}types in der exports-Map
Moderne Pakete stellen außerdem pro Einstieg Typen in der exports-Map bereit, damit Importe von Unterpfaden korrekt aufgelöst werden.
{
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/my-ui-lib.es.js"
}
}
}Autovervollständigung globaler Komponenten
Wenn Verbraucher Ihre Komponenten global registrieren, muss TypeScript sie in der Schnittstelle GlobalComponents deklarieren, damit Autovervollständigung in Templates und eine Prop-Prüfung möglich sind.
GlobalComponents erweitern
Liefern Sie eine Modul-Erweiterung aus, die Ihre Komponenten zu vues GlobalComponents hinzufügt. Verbraucher, die Ihre Typen referenzieren, erhalten dadurch IntelliSense in Templates.
// global.d.ts
import MyButton from "./MyButton.vue";
declare module "vue" {
export interface GlobalComponents {
MyButton: typeof MyButton;
}
}
export {};Component-Props typisieren
Verwenden Sie defineProps mit einem TypeScript-Typ, damit die generierte Deklaration den Verbrauchern genaue Prop-Typen bereitstellt.
// MyButton.vue <script setup lang="ts">
defineProps<{
label: string;
disabled?: boolean;
}>();Typen überprüfen
Führen Sie vor der Veröffentlichung in einem Beispielprojekt des Verbrauchers tsc --noEmit aus (oder verwenden Sie ein Tool wie attw/are-the-types-wrong), um zu bestätigen, dass die Deklarationen aufgelöst und Props geprüft werden.
npx tsc --noEmitKurztest
Was erhalten Verbraucher einer Bibliothek durch die Erweiterung von GlobalComponents?
Zusammenfassung
Verwenden Sie vite-plugin-dts mit insertTypesEntry, um .d.ts-Dateien zu erzeugen. Verweisen Sie mit dem Feld types von package.json (und der exports-Map) auf die Einstiegsdeklaration und liefern Sie eine Erweiterung von GlobalComponents aus, damit Verbraucher Autovervollständigung in Templates erhalten. Typisieren Sie Props mit defineProps und überprüfen Sie sie mit tsc --noEmit.
Häufig gestellte Fragen
Ist die Lektion „TypeScript-Deklarationen für Komponentenbibliotheken“ kostenlos?
Ja — der vollständige Text von „TypeScript-Deklarationen für Komponentenbibliotheken“ 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 „TypeScript-Deklarationen für Komponentenbibliotheken“?
vite-plugin-dts, .d.ts-Dateien generieren und Component-Props für Bibliotheksnutzer typisieren 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 2 von 4.
Wie lange dauert die Lektion „TypeScript-Deklarationen für Komponentenbibliotheken“?
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
- Vite-Konfiguration im Library-Modus
- TypeScript-Deklarationen für Komponentenbibliotheken
- Tree-Shaking und automatische Importe
- Veröffentlichung auf npm und semantische Versionierung