Возможно ли иметь интерфейс, который имеет либо одно, либо другое свойство?

#typescript

#typescript

Вопрос:

Мне нужен такой интерфейс:

 interface EitherOr {
  first: string;
  second: number;
}
 

Но чтобы убедиться, что он имеет только либо first или second . Возможно ли это?

Комментарии:

1. Используйте объединение : type EitherOr = { first: string } | { second: number }

Ответ №1:

Используйте тип объединения, как это уже предложено в комментарии. Это означает, что тип всегда является одним из двух типов.

 interface First {
   first: string;
}

interface Second {
   second: number;
}

type EitherOr = First | Second;