Как отфильтровать значения реквизита из объединения интерфейсов

Я пытаюсь использовать реквизиты из (импортного) типа союза и использовать их в реагирующем компоненте, чтобы конечный потребитель в финале app мог «фильтровать» их в самовнушении. и подтвердите.

Типы:

export type Clothes =
  | Shirt
  | Dress
  | Pants

export interface Shirt {
  size: "M" | "S";
  name: "Shirt";
}

export interface Dress {
  size: "XS";
  name: "Dress";
}

export interface Pants {
  size: "L" | "M" | "S";
  name: "Pants";
}

Реагировать компонент:

export const Clothe = (props: Clothes & {className?: string}) => {
    return (
      <div className = {props.className}>
        <span>{`${props.name} ${props.size}`}</span>
      </div>     
    )
}

Потребительское приложение:

<Clothe name = "Shirt" size = "L" />// this should be invalid

Clothe должен иметь только M и S в качестве размера из-за «имени», но союз дает мне все размеры на выбор (L, M, S, XS)

Например. Если я выберу неправильную комбинацию реквизитов size и name, должна появиться ошибка «ts».

Автозаполнение также должно отфильтровывать size поддержку для определенного типа. в зависимости от того, какой name реквизит выбран (и желательно наоборот — чтобы size реквизит отфильтровывал только все name этого размера).

Как этого добиться?

рабочий пример

поделитесь своим кодом

AlexZvl 31.03.2019 14:53

Вы должны опубликовать код в вопросе, а не просто ссылку. Но из того, что я вижу, он работает должным образом, если я копирую код локально, он выдает ошибку, если комбинация namesize недействительна.

Titian Cernicova-Dragomir 31.03.2019 15:21
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
2
90
0

Другие вопросы по теме