В настоящее время я работаю с библиотекой formik, и у меня есть реквизиты для моего React.F C, определенные следующим образом:
import { useField, FieldAttributes } from "formik";
const propTypes = {
label: PropTypes.string
};
type TextFieldProps = InferProps<typeof propTypes> & FieldAttributes<[]>;
однако, когда я пытаюсь назначить проптипы для моего компонента:
TextField.propTypes = propTypes;
Я получаю сообщение об ошибке, которое довольно трудно понять, но похоже, что тип "FieldAttributes" как-то облажается, как я могу объяснить это в моих проптипах?
Type '{ label: PropTypes.Requireable<string>; }' is not assignable to type 'WeakValidationMap<InferPropsInner<Pick<{ label: Requireable<string>; }, never>> & Partial<InferPropsInner<Pick<{ label: Requireable<string>; }, "label">>> & ... 4 more ... & { ...; }> | WeakValidationMap<...> | WeakValidationMap<...> | undefined'.
Type '{ label: PropTypes.Requireable<string>; }' is not assignable to type 'WeakValidationMap<InferPropsInner<Pick<{ label: Requireable<string>; }, never>> & Partial<InferPropsInner<Pick<{ label: Requireable<string>; }, "label">>> & ... 4 more ... & { ...; }>'.
The types returned by 'toString(...)' are incompatible between these types.
Type 'string' is not assignable to type 'Error | null'.ts(2322)
И TextField F C:
export const TextField: React.FC<TextFieldProps> = ({ label, ...props }) => {
const [field, meta] = useField(props);
return (
<div className="form-group">
<label htmlFor={field.name}>
{label}
<input
{...field}
{...meta}
className="form-control"
placeholder={placeholder}
/>
</label>
<div>{meta.error}</div>
</div>
);
};
Любые предложения приветствуются!