Я хочу добавить тип для своего динамического маршрута, который я могу заменить типом «любой» в приведенном ниже коде, написанном с помощью Typescript.
export default async function DetailProduct({ params }: any) {
const { imageAddress, title, price } = await getProductByID(params.id);
return ...
}
Есть ли у nextjs тип для этого? Я использую nextjs14
В NextJS нет для этого типа. Но эй, вы можете правильно определить тип в соответствии с использованием вами клавиш. Если вы просто используете строку id
из параметров, просто определите типы, как показано ниже:
export default async function DetailProduct({ params }:{ params : { id : string } } ) {
const { imageAddress, title, price } = await getProductByID(params.id);
return ...
}
Пример из документации
Вы определяете свои собственные типы либо при вызове, либо можете создать определение.
Вам не нужна часть ожидания, вы можете просто извлечь идентификатор из объекта параметра.
export default function Product({ params }: { params: { id: string } }) {
const { id } = params;
return (
<>
<div>Product ID: {id}</div>
</>
)}
interface IProduct = {
imageAddress: string;
title: string;
price: number;
}
export default function Product({ params }: { params: IProduct }) {
...
Источник https://raynoppe.com/snippets/nextjs-app-router/app-structure-in-next-js/page-comComponent/
да, это правда, но я думаю, что для этого есть определенный тип, спасибо