Skip to content

My enums are not extensible anymore

Symptoms

I had an enum that used to generate x-ms-enum.modelAsString: true but now it is generating as x-ms-enum.modelAsString: false and I see a warning message @azure-tools/typespec-azure-core/no-enum

Cause

Azure stopped treating enums as extensible.

Workaround

To define an extensible enum you will need instead to use a union where one of the variants is string. If you see the linter warning @azure-tools/typespec-azure-core/no-enum it also offers an automatic codefix (click the (ℹ) bulb in VS Code) For example

enum PetKind {
Cat,
Dog,
}

should be converted to

union PetKind {
Cat: "Cat",
Dog: "Dog",
string,
}