const router = createBrowserRouter([
{
path: "/",
element: <Root />,
errorElement: <ErrorPage />,
loader: rootLoader,
children: [
{
path: "contacts/:id",
element: <Contact />,
loader: contactLoader <---- здесь ошибка
},
],
},
]);
Название ошибки
Type '({ params }: { params: TParams; }) => Promise<IContact>' is not assignable to type 'LoaderFunction'.
Types of parameters '__0' and 'args' are incompatible.
Type 'LoaderFunctionArgs' is not assignable to type '{ params: TParams; }'.
Types of property 'params' are incompatible.
Property 'id' is missing in type 'Params<string>' but required in type 'TParams'.
type TParams = {
id: number
}
type IContact = {
first: string,
last: string,
avatar: string,
twitter: string,
note: string,
favorite: boolean,
}
export async function loader({params}: { params: TParams}): Promise<IContact> {
const contact = await getContact(params.id))
return contact
}
Но при записи
loader({params}: any)
, ошибки нет
В чем я ошибся при типизации параметра и почему он ссылается на какой-то
'LoaderFunction'
?