确定键入取决于接口(TypeScript)中其他键的值

时间:2020-04-14 22:55:49

标签: typescript

interface InputProps {
  type: 'input' | 'textarea'
  props: | React.InputHTMLAttributes<HTMLInputElement>
         | React.TextareaHTMLAttributes<HTMLTextAreaElement>
}

如果type: 'input',我想限制propsReact.InputHTMLAttributes<HTMLInputElement>类型。

1 个答案:

答案 0 :(得分:1)

您应该将其定义为2个单独的接口,然后将它们组合:

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

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

type TextFieldProps = InputProps | TextAreaProps;