@Evtera

Как сделать обязательным один ключ из двух?

Здравствуйте. Есть такой массив
[
 {
     icon: '@custom:communications:call',
        tooltipContent:
          'Анкета – форма для просмотра и редактирования контактных данных клиента',
        event: () => console.log('asd'),
      },
      {
     text: 'asфыв',
        tooltipContent:
          'Создание абонента в BIS – создание абонента вручную в АСР',
        event: () => console.log('asd'),
      },
]


Мне нужно сделать так, чтобы соблюдалось условие ИЛИ, то есть в объекте используется ключ icon или text.
Пробовал так, но не выходит. В чем ошибка?

type TNavCardButton = {
  tooltipContent: string
  event: () => void
}

interface TNavCardButtonText extends TNavCardButton {
  text: string
}

interface TNavCardButtonIcon extends TNavCardButton {
  icon: string
}

export type TNavCardTemplate = {
  buttons: TNavCardButtonIcon[] | TNavCardButtonText[]
}


заранее спасибо )
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@Dimava2
type A = { text: string, icon: never }
type B = { text: never, icon: string }
type ExclusiveOr_Array = (A | B)[]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы