Im getting quite a few of the same TypeScritp error in my main React component using react-router-dom. All of the child components are returning errors:
error TS2322: Type 'typeof NotFound' is not assignable to type 'StatelessComponent<void | RouteComponentProps<any>> | ComponentClass<void | RouteComponentProps<a...'.
Type 'typeof NotFound' is not assignable to type 'ComponentClass<void | RouteComponentProps<any>>'.
Types of parameters 'props' and 'props' are incompatible.
Type 'void | RouteComponentProps<any> | undefined' is not assignable to type '{} | undefined'.
Type 'void' is not assignable to type '{} | undefined'.
error TS2322: Type 'typeof Index' is not assignable to type 'StatelessComponent<void | RouteComponentProps<any>> | ComponentClass<void | RouteComponentProps<a...'.
Type 'typeof Index' is not assignable to type 'ComponentClass<void | RouteComponentProps<any>>'.
Type 'Index' is not assignable to type 'Component<void | RouteComponentProps<any>, ComponentState>'.
Types of property 'props' are incompatible.
Type 'Readonly<{ children?: ReactNode; }> & Readonly<Props>' is not assignable to type '(Readonly<{ children?: ReactNode; }> & void) | (Readonly<{ children?: ReactNode; }> & Readonly<Ro...'.
Type 'Readonly<{ children?: ReactNode; }> & Readonly<Props>' is not assignable to type 'Readonly<{ children?: ReactNode; }> & Readonly<RouteComponentProps<any>>'.
Type 'Readonly<{ children?: ReactNode; }> & Readonly<Props>' is not assignable to type 'Readonly<RouteComponentProps<any>>'.
Property 'match' is missing in type 'Readonly<{ children?: ReactNode; }> & Readonly<Props>'.
My Main.tsx component looks like this (all other components.tsx seem to compile without issue):
import * as React from 'react';
import { BrowserRouter as Router, Route, Switch} from 'react-router-dom';
import Index from './Index';
import Explore from './Explore';
import NotFound from './NotFound';
class Main extends React.Component<{},{}> {
render () {
return (
<Router>
<Switch>
<Route path="/" exact={true} component={Index} />
<Route path="/explore/things/:id" component={Explore} />
<Route component={NotFound} />
</Switch>
</Router>
)
}
}
export default Main;
Can anyone provide some clues?
This fixes the compile error (but creates a tslint violation)
<Route path="/" exact={true} component={Index as any} />
<Route path="/explore/things/:id" component={Explore as any} />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With