Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato diagnostika nastává, když deklarujete typ sjednocení s členy, kteří nejsou doslovnými hodnotami.
Description
Všechny členy deklarace typu sjednocení musí být literální hodnoty.
Úroveň
Error
Solution
Ujistěte se, že všichni členové odborového typu deklarace jsou doslovnými hodnotami. Pro více informací viz Uživatelsky definované datové typy.
Examples
Následující příklad zvyšuje diagnostiku, protože účelem následujícího kódu je omezit vstup na konkrétní prostředí ("dev", "test", "prod"), přičemž zároveň povolit jakoukoli jinou hodnotu řetězce. Bicepsův systém typů tuto kombinaci v odborech nedovoluje.
type EnvironmentType = 'dev' | 'test' | 'prod' | string
Pokud je cílem striktně vynutit tři povolené hodnoty a jinak kompilace selhat, odstraňte obecný typ řetězce.
type EnvironmentType = 'dev' | 'test' | 'prod'
Pokud je cílem povolit libovolnou hodnotu řetězce a předdefinovaný seznam je jen návrh, použijte přímo generický string typ a sjednocení zcela odstranite.
type EnvironmentType = string
Následující příklad je dalším příkladem, kdy není povoleno míchání literálů s objekty obsahujícími generické primitiva:
type oneOfSeveralObjects = {foo: 'bar', bar: string} | {fizz: 'buzz'} | {snap: 'crackle'}
Aby se problém vyřešil, musí být všichni členové stejné kategorie typu. Protože záměrem je zde sjednocení komplexních typů, nejjednodušší opravou je zajistit, aby všechny vlastnosti, které mají být konstantami, byly definovány jako literály řetězců v celém sjednocení.
type oneOfSeveralObjects = {foo: 'bar', bar: 'baz'} | {fizz: 'buzz'} | {snap: 'crackle'}
Další kroky
Další informace o diagnostice Bicep najdete v tématu Diagnostika jádra Bicep.