I'm working with NativeBase (the package name doesn't matter) with Typescript.
I'm creating a simple Input component that wraps the NativeBase TextInput. I added a few own properties and spread all other properties to the NativeBase TextInput.It means that the props object should contain my custom properties and the NativeBase TextInput.
My question is: How to describe it properly via typescript without copying the NativePase properties?
import { Input } from 'native-base';type Props = { // my custom prop style: object; // props from NativeBase onFocus?: () => void; onBlur?: () => void;}export class TextInput extends Component<Props, State> { render() { // without these callbacks in Props typescript will complain const { style, onFocus, onBlur, ...otherProps } = this.props; return (<Input style={this.getStyle()} {...otherProps}/> ); }}
I tried to use type intersection but it doesn't work because the Input isn't a 'type' in general;
type Props = Input & { // my custom prop style: object;}
also, I tried to extract Input types via typeof. Didn't help.
type Props = typeof Input & { // my custom prop style: object;}
So is there exists a way to avoid copy-pasting the package possible props that I want to use?
Thanks for any help!