reactjs - TypeScript: implisitt type 'any' på grunn av ingen typeannotasjon og direkte eller indirekte referanse i sin egen initialiserer
Med følgende kodebit får jeg følgende feil: TypeScript-feil: 'route' har implisitt typen 'any' fordi den ikke har en typeannotasjon og refereres direkte eller indirekte i sin egen initializer. TS7022
const store = configureStore()
const renderWithRouter = (
ui: any,
{
route = '/', /* ERROR HERE */
history = createMemoryHistory({ initialEntries: [route] }),
} = {},
) => {
return {
...render(
<Provider store={store}>
<Router history={history}>{ui}</Router>
</Provider>,
),
history,
}
}
export default renderWithRouter
Jeg jobbet i en helt annen del av koden og måtte oppgradere en pakke, og så plutselig begynte dette å klage. (Pakkene var react-router-dom og @types/react-router-dom).
Jeg er ikke helt sikker på hvordan jeg kommer forbi dette, og dessuten er jeg litt forvirret over hva som skjer med den andre parameteren i funksjonen. Det ser ut som de prøvde å identifisere en standard tom parameter, men de har fylt inn verdier på venstre side for route og history.
rediger: Jeg har løst problemet ved å legge til følgende:
interface IRenderParams {
route: string | undefined;
history: MemoryHistory<any>
}
...
{
route = '/', /* ERROR HERE */
history = createMemoryHistory({ initialEntries: [route] }),
} = {} as IRenderParams
...
Dette løser problemet, men jeg er fortsatt ikke helt sikker på hvorfor dette er definert slik.