Передача реквизита с пользовательским типом, nextJS, typescript

У меня есть массив, содержащий данные JSON, которые извлекаются после http-вызова, затем я назначаю его тип Service.

type Service = {
id?: string;
name?: string;
description?: string;
};

Я делаю вызов API в getServerSideProps и присваиваю данным тип Service:

 export async function getServerSideProps() {
 const data: Service = (await getServices()).data;
 console.info(data);
 return {
     props: { data }, // will be passed to the page component as props
 };
}

Однако, как только реквизиты передаются в компонент страницы, он, похоже, теряет свой тип, и я получаю сообщение об ошибке «Свойство« данные »не существует для типа« {} ».

данные теперь, кажется, имеют тип «любой»?

const DigitalServices: NextPage = ({ data }) => (

Как мне обойти эту ошибку, я знаю, что могу просто сделать {data}: any, но это лишает смысла использование машинописного текста? Спасибо


53
1

Ответ:

Решено

Вы также должны указать тип реквизита, который вы собираетесь получить в компоненте:

const DigitalServices: NextPage<{data: Service}> = ({ data }) => (