Задать вопрос
@reivunxx

Как использовать один компонент с разными типами данных?

Предположим у меня есть форма с несколькими полями, вынесенная в отдельный компонент.
Я хочу добавить в этот компонент возможность использовать его для изменения существующей записи.
То есть, если входящих пропсов с данными нет, то использовать логику создания
Если есть данные, то заполнить поля, и вместо API создания использовать API изменения
в обычном JS я бы использовать if(data) в useEffect
И использованием TS возник вопрос как правильно прокинуть типы, и как ими пользоваться внутри
type Props = ITemplate | {}
const CreateTemplateForm: FC<{ data: Props }> = ({data}) => {}

Я написал что-то подобное, но TS перестал видеть типы данных внутри data.
Хотелось бы разобраться как решать подобные задачи правильно.

Если будут комментарии насчет того, что есть решения структурно более удачные, то тоже буду рад
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Наверное ты хочешь этого:
type Props = { data?: ITemplate } | {}
const CreateTemplateForm: FC<Props> = (props) => {
  if ('data' in props && props.data) {
    
    return ...;
  }

  return ...;
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы