Skip to content

no-multiple-discriminator

Id
@azure-tools/typespec-azure-core/no-multiple-discriminator

Classes should have at most one discriminator.

Using a nested polymophic relationship is not allowed in Azure services. Most JSON serializers and deserializers do not support this feature.

  • Area: SDK, API

Multiple discriminators are not supported by SDKs, nor by Swagger without extensions.

@discriminator("fishtype")
model Fish {
fishtype: string;
}
@discriminator("sharktype")
model Shark extends Fish {
fishtype: "shark";
sharktype: string;
}
model WhiteShark extends Shark {
sharktype: "white";
}
@discriminator("fishtype")
model Fish {
fishtype: string;
}
model Shark extends Fish {
fishtype: "shark";
}
model WhiteShark extends Fish {
fishtype: "white-shark";
}

Suppress only with SDK approval. Use a single discriminator and refactor additional discriminators onto child or sibling properties.