Ввод antd form.create, когда компонент использует универсальный тип - PullRequest
0 голосов
/ 20 сентября 2019

У меня возникают проблемы при правильном наборе функционального компонента, заключенного в Form.create (), который содержит универсальный тип.

Вот пример функционального компонента

interface IProps<T> extends FormComponentProps {
    left: T;
    right: T;
}

const SampleComponent = <T extends object>(props: IProps<T>): JSX.Element => 
{ leaving this out for simplicity };

export default Form.create()(SampleComponent);

КогдаЯ пытаюсь использовать этот компонент, он жалуется, что подпорки влево и вправо не существуют, что имеет смысл, так как я не могу понять, как передать универсальный тип.

Для компонентов, которые не имеют универсального типатип, который я знаю, чтобы сделать Form.create<Props>(Component), но я не уверен, как правильно передать этот универсальный тип.Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

вам нужно изменить последнюю строку в качестве ссылки с https://ant.design/components/form/#Using-in-TypeScript

Form.create<IProps>()(SampleForm);
0 голосов
/ 21 сентября 2019

Вы можете использовать FunctionComponent, который принимает аргумент типа, а затем объявить универсальный тип (с любыми ограничениями, такими как extends object), которые вы хотите, для своих реквизитов в интерфейсе проп, как в настоящее время.Затем вы можете передать любой универсальный шаблон, который вы используете в качестве параметра, в универсальный шаблон универсального типа для вашего типа компонента.Это автоматически наберет ваши реквизиты, поэтому нет необходимости явно объявлять их как тип вашего реквизита.Например:

interface IProps<T extends object> extends FormComponentProps {
  left: T;
  right: T;
}

const SampleComponent: FunctionComponent<IProps<MyGenericType>> = ({ left, right }) => {
  return <div/>
}

Где MyGenericType - это тип left и right, который также расширяет тип объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...