Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Diagnose tritt auf, wenn man einen Gewerkschaftstyp mit Mitgliedern deklariert, die keine buchstäblichen Werte sind.
Description
Alle Member einer Union-Typdeklaration müssen Literalwerte sein.
Ebene
Fehler
Lösung
Stellen Sie sicher, dass alle Mitglieder einer gewerkschaftsähnlichen Erklärung wörtliche Werte sind. Weitere Informationen finden Sie unter Benutzerdefinierte Datentypen.
Examples
Das folgende Beispiel erhebt die Diagnose, weil die Absicht des folgenden Codes darin besteht, die Eingabe auf bestimmte Umgebungen ('dev', 'test', 'prod') zu beschränken und gleichzeitig andere String-Werte zuzulassen. Das Typisierungssystem von Biceps erlaubt diese Mischung in einer Gewerkschaft nicht.
type EnvironmentType = 'dev' | 'test' | 'prod' | string
Wenn das Ziel ist, die drei erlaubten Werte strikt durchzusetzen und die Kompilierung zu vermeiden, entferne den generischen Stringtyp.
type EnvironmentType = 'dev' | 'test' | 'prod'
Wenn das Ziel ist, beliebigen String-Wert zuzulassen und die vordefinierte Liste nur ein Vorschlag ist, verwenden Sie direkt den generischen string Typ und entfernen Sie die Union ganz.
type EnvironmentType = string
Das folgende Beispiel ist ein weiteres Beispiel, bei dem das Mischen von Literalen mit Objekten, die generische Primitive enthalten, nicht erlaubt ist:
type oneOfSeveralObjects = {foo: 'bar', bar: string} | {fizz: 'buzz'} | {snap: 'crackle'}
Um das Problem zu beheben, müssen alle Mitglieder zur gleichen Typkategorie gehören. Da hier die Absicht eine Vereinigung komplexer Typen ist, besteht die einfachste Lösung darin, sicherzustellen, dass alle Eigenschaften, die als Konstanten gedacht sind, als Zeichenkettenliterale über die gesamte Vereinigung definiert sind.
type oneOfSeveralObjects = {foo: 'bar', bar: 'baz'} | {fizz: 'buzz'} | {snap: 'crackle'}
Nächste Schritte
Weitere Informationen zur Bicep-Diagnose finden Sie unter Bicep-Kerndiagnose.