type Size = 'mini' | 'small' | 'extra-small'; type Color = 'white' | 'yellow'; type Disabled = 'disabled'; type ModifierCombination = | [Size, Color?, Disabled?] | [Color, Size?, Disabled?] | [Disabled, Size?, Color?] | [Size, Disabled, Color?] | [Color, Disabled, Size?] | [Disabled, Color, Size?]; type RoundButtonModifierConfig = { 'o-round-button': ModifierCombination; }; export type RoundButtonModifier = { [P in keyof RoundButtonModifierConfig]: { prefix: P; Disabled: RoundButtonModifierConfig[P]; }; }[keyof RoundButtonModifierConfig]; export type ModifierItems = RoundButtonModifier[] | ModifierCombination;