Сторонний тип возиться с моими проптипами? - PullRequest
0 голосов
/ 03 марта 2020

В настоящее время я работаю с библиотекой 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>
  );
};

Любые предложения приветствуются!

...