@reivunxx

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

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

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

Если будут комментарии насчет того, что есть решения структурно более удачные, то тоже буду рад
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Наверное ты хочешь этого:
type Props = { data?: ITemplate } | {}
const CreateTemplateForm: FC<Props> = (props) => {
  if ('data' in props && props.data) {
    
    return ...;
  }

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

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

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