У кнопки дизайн-системы 14 булевых пропсов, и никто не знает, что будет при isPrimary и isDanger
<Button isPrimary isDanger isSmall isLarge isOutline isGhost>Удалить</Button>
Компонент принимает isPrimary, isSecondary, isDanger, isGhost, isOutline, isSmall, isLarge и ещё семь флагов. Команды жалуются, что непонятно, какой из конфликтующих флагов победит. Как лучше спроектировать API компонента?
- Взаимоисключающие флаги заменить пропсами-перечислениями variant и size
- Задокументировать приоритет флагов в README компонента
- Сделать отдельный компонент на каждое сочетание флагов
- Бросать ошибку в рантайме при конфликтующих флагах
