Решите, типизация зависит от значения другого ключа в интерфейсе (TypeScript) - PullRequest
0 голосов
/ 15 апреля 2020
interface InputProps {
  type: 'input' | 'textarea'
  props: | React.InputHTMLAttributes<HTMLInputElement>
         | React.TextareaHTMLAttributes<HTMLTextAreaElement>
}

если type: 'input', я хочу ограничить props типом React.InputHTMLAttributes<HTMLInputElement>.

1 Ответ

1 голос
/ 15 апреля 2020

Вы должны определить его как 2 отдельных интерфейса, а затем объединить их:

interface InputProps {
  type: 'input'
  props: React.InputHTMLAttributes<HTMLInputElement>
}

interface TextAreaProps {
  type: 'textarea'
  props: React.TextareaHTMLAttributes<HTMLTextAreaElement>
}

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