React - Интерфейсы Typescript - ошибки при получении реквизита от типов объединения - PullRequest
3 голосов
/ 20 апреля 2020

Я использую реагирую на машинопись.

Я хочу требовать, чтобы только один параметр был принят от prop3 | prop4. Я использую тип объединения следующим образом:

interface General {
  prop1?: boolean
  prop2?: boolean
}

interface Option1 extends General {
  prop3: boolean
}

interface Option2 extends General {
  prop4: boolean
}

type Option1orOtion2 = Option1 | Option2

Если я получу prop3, я не хочу, чтобы prop4 было принято.

Когда я это делаю, я получаю ошибки о эти ценности. Чем я занимаюсь?

export default function({
  prop1 = true,
  prop2 = true,
  prop3 = true, // error: Property 'prop3' does not exist on type 'Option1orOtion2'
  prop4 = true  // error: Property 'prop4' does not exist on type 'Option1orOtion2'
}: Option1orOtion2) {
  return <></>
}

РЕДАКТИРОВАТЬ : Когда я делаю это с переменной, ошибок нет, но позвольте мне передать prop3, а также prop4, и я хотите получить сообщение об ошибке (Option1 или Option2).

var data: Option1orOtion2 = {prop3: false, prop4: false}

Есть предложения?

Заранее спасибо!

...