type InputType = | 'text' | 'email' | 'select' | 'file' | 'radio' | 'checkbox' | 'textarea' | 'button' | 'reset' | 'submit' | 'date' | 'datetime-local' | 'hidden' | 'image' | 'month' | 'number' | 'range' | 'search' | 'tel' | 'url' | 'week' | 'password' | 'datetime' | 'time' | 'color'; // Intermediate interface to "redefine" the type of size to string // size:number => size:any => size:string interface Intermediate extends React.ChangeTargetHTMLProps { size?: any; } interface InputProps extends Intermediate { type?: InputType; size?: string; state?: string; tag?: React.ReactType; addon?: boolean; className?: string; // We don't have the property 'static' here because 'static' is a reserved keyword in TypeScript // Maybe reactstrap will support an 'isStatic' alias in the future } declare var Input: React.StatelessComponent; export default Input;